<div dir="ltr"><div>This is great! I'm not sure if you have been following some of the discussion about the separation of vendor drivers in Neutron, but one of the things we decided was to leave the vendor data models in the main repo so we have a nice linear migration.</div><div>It looks like branching support may solve our problem. However, looking through the docs I didn't notice anything about where the migration definitions need to live. Can migrations be sourced from multiple locations easily?</div><div><br></div>><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">is the so-called “degenerate” case (an odd term for me to use as I am so not a math person).</span><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">I was always under the impression we used that term to make the person that came up with the original use-case feel bad. :-)</span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px"><br></span></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 21, 2014 at 1:10 PM, Mike Bayer <span dir="ltr"><<a href="mailto:mbayer@redhat.com" target="_blank">mbayer@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all -<br>
<br>
I’d like to announce / give a prominent heads up that Alembic 0.7.0 is ready for release.  Over the past several weeks I’ve completed the initial implementations for two critical features, SQLite migrations and multiple branch/ merge support, as well as merged over a dozen bug fixes and smaller features.    This release is probably the most dramatic set of changes Alembic has had since some early refactorings long before Openstack was making use of it, and as such I think it’s appropriate to make sure that this is anticipated.<br>
<br>
Given that I’ve seen some grumbling about other projects recently releasing on weekends, assuming no new issues are found, I hope to release Alembic 0.7.0 on Sunday night or Monday.    I have run a subset of Openstack related tests as is part of my usual continuous environment, including all of oslo.db (there’s one test fix for oslo.db pending) as well as Neutron’s “neutron.tests.unit.db.test_migration” which if I understand it correctly exercises Alembic considerably.<br>
<br>
Version 0.7.0 includes a lot of tweaks and enhancements in the usual “autogenerate” category as well as to some operational directives, but most prominently includes multiple branch mode, a series of new commands and some changes to existing commands, as well as “batch mode” which is geared towards SQLite.     The SQLite batch mode enhancement exists as a new operational directive and series of behaviors that are optional, so code which doesn’t make explicit use of it will not be exposed to the new code.  However the multiple branch/merge support involves a fundamental rewrite of the versioning system from the ground up.  It was implemented in such a way that there should be no backwards-compatibility problems of any kind - existing environments, script templates, migration scripts, and alembic_version tables will continue to work in the exact same manner as they did before, in the absence of using the newer branch features which introduces some mild changes to the workflow when used.   But the system does run on a new set of algorithms for which the currently supported use case of a “single linear stream of revisions” is the so-called “degenerate” case (an odd term for me to use as I am so not a math person).<br>
<br>
The release does not yet include two new features that I’d like to get in a subsequent release, maybe even 0.7.1 if things go smoothly, including Ann Kamyshnikova’s foreign key constraint autogeneration feature and a separate autogeneration feature for primary key constraints.<br>
<br>
To those out there wondering what steps to take, here they are:<br>
<br>
1. read about the new features, particularly the branch support, and please let me know of any red flags/concerns you might have over the coming implementation, at <a href="http://alembic.readthedocs.org/en/latest/tutorial.html#running-batch-migrations-for-sqlite-and-other-databases" target="_blank">http://alembic.readthedocs.org/en/latest/tutorial.html#running-batch-migrations-for-sqlite-and-other-databases</a> and <a href="http://alembic.readthedocs.org/en/latest/tutorial.html#working-with-branches" target="_blank">http://alembic.readthedocs.org/en/latest/tutorial.html#working-with-branches</a>.<br>
<br>
2. if your project uses Alembic already (I know Neutron does but I’m not sure who else yet), fire up a tox environment and install Alembic from master at <a href="https://github.com/zzzeek/alembic/" target="_blank">https://github.com/zzzeek/alembic/</a>, run the tests and please alert me to any breakages.<br>
<br>
3. Keep a lookout for the release, and<br>
<br>
4. don’t panic!   I’ve really tried to test this to a huge extent and if there are problems, I can fix them quickly.<br>
<br>
thanks all for reading!<br>
<br>
0.7 changelog: <a href="http://alembic.readthedocs.org/en/latest/changelog.html#change-0.7.0" target="_blank">http://alembic.readthedocs.org/en/latest/changelog.html#change-0.7.0</a><br>
<br>
<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div>Kevin Benton</div></div>
</div>