<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On Tue, Jul 16, 2013 at 10:51 AM, Roman Podolyaka <span dir="ltr"><<a href="mailto:rpodolyaka@mirantis.com" target="_blank">rpodolyaka@mirantis.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello, stackers!<div><br></div><div>Most of you who is interested in work around DB in OpenStack must have read this thread [1] started by Boris Pavlovic. Boris made an overview of the work our team is doing to make DB code better.</div>

<div><br></div><div>One of our main goals is to switch from sqlalchemy-migrate to Alembic for applying of DB schema migrations. sqlalchemy-migrate was abandoned for a long time, and even now when it's become adopted by OpenStack community, we'd better use a project which is supported by upstream (especially in the case when the author of this project is the same person who also authored SQLAlchemy).</div>

<div><br></div><div>The switch isn't going to be simple though. We have a few problems:</div><div><br></div><div>1) stable releases must be supported for some time, so we can't switch from migrate to alembic immediately</div>

<div><br></div><div>The switch should probably be made when previous migrations scripts are "compacted", so all new migrations scripts will use alembic. Switching of such big projects as Nova is hard, so we decided to gain some experience with porting of smaller ones first. Alexei Kornienko is currently working on adding support of Alembic migrations in Ceilometer [3]. </div>

<div><br></div><div>Our long term goal is to switch all projects from using of sqlalchemy-migrate to Alembic.</div><div><br></div><div>2) we rely on schema migrations to set up an SQLite database for running tests</div><div>

<br></div><div>Nova and possibly other projects use schema migrations to set up an SQLite database for running tests. Unfortunately, we can't use models definitions for generation of initial DB schema, because those definitions do not correspond migration scripts. Our team is working on fixing of this issue [2].</div>

<div><br></div><div>As you may now SQLite has limited support of ALTER DDL statements [4]. Nova code contains a few auxiliary functions to make ALTER work in SQLite. Unfortunately, Alembic doesn't support ALTER in SQLite on purpose [5]. In order to run our tests on SQLite right now using Alembic as a schema migration tool, we should add ALTER support to it first.</div>

<div><br></div><div>We are going to implement ALTER support in Alembic for SQLite in the next few weeks.</div></div></blockquote><div><br></div><div>I'm a little lost on this ... sqlite doesn't support ALTER, so what exactly is being added to alembic? Is the alembic community receptive or interested?</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>As always, your comments in ML and reviews are always welcome.</div><div>
<div><br></div><div>
Thanks,</div><div>Roman</div></div><div><br></div><div><div>[1] <a href="http://lists.openstack.org/pipermail/openstack-dev/2013-July/011253.html" target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2013-July/011253.html</a></div>

<div>[2] <a href="https://blueprints.launchpad.net/nova/+spec/db-sync-models-with-migrations" target="_blank">https://blueprints.launchpad.net/nova/+spec/db-sync-models-with-migrations</a></div><div>[3] <a href="https://review.openstack.org/#/q/status:open+project:openstack/ceilometer+branch:master+topic:bp/convert-to-alembic,n,z" target="_blank">https://review.openstack.org/#/q/status:open+project:openstack/ceilometer+branch:master+topic:bp/convert-to-alembic,n,z</a></div>

<div>[4] <a href="http://www.sqlite.org/lang_altertable.html" target="_blank">http://www.sqlite.org/lang_altertable.html</a></div><div>[5] <a href="https://bitbucket.org/zzzeek/alembic" target="_blank">https://bitbucket.org/zzzeek/alembic</a></div>
</div>
</div>
<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>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><br></div>-Dolph
</div></div>