On 2017-06-11 19:07, Bradley Giesbrecht wrote:
>> 4. Another thing that ran my mind while pondering that there are 2 options 
>> for sqlite database as well: make the tables in the very beginning (while 
>> initial installation) or while running the snapshot for the first time. I 
>> suggest to go with the first one because it's simple.
>> The major target is to finish the snapshot action before Jun 24.
> 
> Does “port selfupdate” constitute an “initial installation”?
> 
> Does port currently perform schema checks?
> 
> If port can detect if the schema needs updating then perhaps we can hook in 
> and “do the right thing".

For testing it should be enough to just modify the registry.db locally
as you need it. Once you reach a stable schema, you will have to add
modifications to the registry schema at two places.

1) The initial database schema for new installations is defined here:

https://github.com/macports/macports-base/blob/e3a0dc2ebde62a9c5feac6a1edee1708a95bb02a/src/cregistry/sql.c#L122-L131

2) The metadata table in registry.db has a row with key='version', where
value holds the schema version. The code to update from one schema
version to the next is here:

https://github.com/macports/macports-base/blob/e3a0dc2ebde62a9c5feac6a1edee1708a95bb02a/src/cregistry/sql.c#L231-L240

Rainer

Reply via email to