I tend to agree with solution 1)
However I wound suggest having an _upgrade folder with several python scripts 
(_core_1.py, _core_2.py, ...) which are then all executed in that order. This 
will make upgrades easier since one just needs to detect the current schema 
version and execute the scripts from the count. 

** Changed in: zeitgeist
       Status: New => Confirmed

Upgrade of the db schema strategy for version jumps
You received this bug notification because you are a member of Zeitgeist
Framework Team, which is subscribed to Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
We have to discuss how to support versions jump in the upgrade path of our db 
schema, like from ("core", 0) to ("core", 2). This becomes even more important 
when we reach the next version.

For me there are two solution:
1.) write 'dummy' upgrade scripts, like core_0_2.py, which do not more than 
running core_0_1.run() and core_1_2.run() one after another
2.) add some magic to sql._do_schema_upgrade() which automatically tries to 
find an upgrade path and run the 'shortest' possible one.

There is an issue with both solutions: right now the upgrade mechanism is 
designed in a way that after each data upgrade the schema upgrade is done. In 
both solutions the schema upgrade will be done *after* the full upgrade path. 
This can be handled by solution 1.) in the sanest possible way, the downside is 
that 1.) does not scale well for big numbers of schema versions around.

Any Ideas?

Mailing list: https://launchpad.net/~zeitgeist
Post to     : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp

Reply via email to