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
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.
Mailing list: https://launchpad.net/~zeitgeist
Post to : firstname.lastname@example.org
Unsubscribe : https://launchpad.net/~zeitgeist
More help : https://help.launchpad.net/ListHelp