Bonjour openstackers -

While you were all sipping champagne on the Champs-Élysées, I took some time to 
tackle one of the two most critically wanted features in Alembic, which is that 
of being able to migrate tables on a SQLite database with some degree of 
sanity.   My immediate focus on Alembic was spurred on partially because some 
changes to the test suite pushed it into 0.7.0, and then we got a very large 
number of bug fixes in, so the urgency to get 0.7.0 is relatively high; but 
what good is a pseudo-major point release without some big new features ?

The feature works similarly to that of SQLAlchemy-Migrate, but I’m hoping in a 
way that is more controllable and open-ended.   I would encourage all those 
interested to take a look at the basic mode of operation over at 
http://alembic.readthedocs.org/en/latest/tutorial.html#running-batch-migrations-for-sqlite-and-other-databases.
   Highlights include that several table operations can take place within one 
“move and copy” operation at once, and the system can also be applied to other 
databases if one so desired (not a common use case but some have expressed 
interest in this being possible…so it is!).   The format of a SQLite-compatible 
migration script will change slightly, though for the better as per-table 
operations are grouped together, and the scripts of course in the default case 
continue to work exactly as before on all other target databases.

I know that a handful of projects have moved or started with Alembic, and I’d 
like to continue pushing Alembic to be the single solution across all projects. 
 There’s some work in oslo.db to define a common environmental format as well 
(see https://review.openstack.org/#/c/112842/).  I would encourage projects to 
continue to evaluate moving their migrations over to Alembic at some point in 
the future, which should also include sending me emails/ircs/bug reports about 
what additional features/fixes are needed.

The next major feature for Alembic, which I will tentatively use this week to 
see if I can get it online, is the multiple heads/branch resolution feature 
(https://bitbucket.org/zzzeek/alembic/issue/167/multiple-heads-branch-resolution-support)
 which a *lot* of people are really asking for.   This feature would allow 
independent migration series to coexist simultaneously, as well “merge point” 
migrations that join disparate branches back into a single stream.   The risk 
level for this feature is significantly higher than that of the SQLite 
migration feature, as while the SQLite migration feature lives entirely within 
a new API that is otherwise unused, the multiple branch feature makes some 
fundamental changes to how versioning is performed.   So while I’d like to get 
this in 0.7.0 as well, if it gets into the weeds I may have to push 0.7.0 
without it as there’s really a crapload of other fixes to be pushed.

Thanks for reading!

- mike




_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to