[openstack-dev] [Keystone] Alembic support

Adam Young ayoung at redhat.com
Fri Jul 26 18:04:57 UTC 2013


On 07/26/2013 01:55 PM, Doug Hellmann wrote:
> It makes sense, though, if the data is going to be (potentially) 
> coming from separate databases. Is that any different for 
> sqlalchemy-migrate?
>
> As far as tracking the separate migrations for the different schemas, 
> that's handled by running "alembic init" for each schema to create a 
> different environment. The environments should then have unique 
> "version_table" values defined in the alembic.ini that the versions of 
> each schema can be tracked separately. I suggest 
> alembic_version_${schema_owner} where schema_owner is the subset of 
> the schema (i.e., policy, tokens, or identity), or the extension name.

It think that this will require enough of a change that I would like to 
do it in Icehouse, and have a detailed blueprint written up for it.
>
>
> On Fri, Jul 26, 2013 at 1:42 PM, Dolph Mathews 
> <dolph.mathews at gmail.com <mailto:dolph.mathews at gmail.com>> wrote:
>
>     Based on the docs, it looks like you need to start with separate
>     sqlalchemy engines with their own metadata instances for each
>     environment you want to migrate. That sounds like a significant
>     refactor from where we are today (everything shares
>     keystone.common.sql.core.ModelBase).
>
>
>     On Thu, Jul 25, 2013 at 10:41 PM, Morgan Fainberg <m at metacloud.com
>     <mailto:m at metacloud.com>> wrote:
>
>         +1 to getting the multiple repos in place.  Moving to Alembric
>         later on in H or even as the first commit of I should meet our
>         goals to be on Alembric in a reasonable timeframe.  This also
>         allows us to ensure we aren't rushing the work to get our
>         migration repos over to Alembric.
>
>         I think that allowing the extensions to have their own repos
>         sooner is better, and if we end up with an extension that has
>         more than 1 or 2 migrations, we have probably accepted code
>         that is far from fully baked (and we should evaluate how that
>         code made it in).
>
>         I am personally in favor of making the first commit of
>         Icehouse (barring any major issue) the point in which we move
>         to Alembric.  We can be selective in taking extension
>         modifications that add migration repos if it is a major
>         concern that moving to Alembric is going to be really painful.
>
>         Cheers,
>         Morgan Fainberg
>
>         On Thu, Jul 25, 2013 at 7:35 PM, Adam Young <ayoung at redhat.com
>         <mailto:ayoung at redhat.com>> wrote:
>
>             I've been looking into Alembic support.  It seems that
>             there is one thing missing that I was counting on:
>              multiple migration repos. It might be supported, but the
>             docs are thin, and reports vary.
>
>             In the current Keystone implementation, we have a table
>             like this:
>             mysql> desc migrate_version;
>             +-----------------+--------------+------+-----+---------+-------+
>             | Field           | Type         | Null | Key | Default |
>             Extra |
>             +-----------------+--------------+------+-----+---------+-------+
>             | repository_id   | varchar(250) | NO   | PRI | NULL    |
>                   |
>             | repository_path | text         | YES  |     | NULL    |
>                   |
>             | version         | int(11)      | YES  |     | NULL    |
>                   |
>             +-----------------+--------------+------+-----+---------+-------+
>
>
>             Right now we only have one row in there:
>
>              keystone      |
>             /opt/stack/keystone/keystone/common/sql/migrate_repo |       0
>
>
>             However, we have been lumping all of our migrations
>             together into a singel repo, and we are just now looking
>             to sort them out.  For example, Policy, Tokens, and
>             Identity do not really need to share a database.  As such,
>             they could go into separate migration repos, and it would
>             keep changes to one from stepping on changes to another,
>             and avoiding the continuous rebasing problem we currently
>             have.
>
>             In addition, we want to put each of the extensions into
>             their own repos.  This happens to be an important time for
>             that, as we have three extensions coming in that need SQL
>             repos:  OAuth, KDS, and Attribute Mapping.
>
>             I think we should delay moving Keystone to Alembic until
>             the end of Havana, or as the first commit in Icehouse.
>              That way, we have a clean cut over point. We can decide
>             then whether to backport the Extnesion migrations or leave
>             them under sql_alchemy migrations. Mixing the two
>             technologies side by side for a short period of time is
>             going to be required, and I think we need to have a clear
>             approach in place to avoid a mess.
>
>             _______________________________________________
>             OpenStack-dev mailing list
>             OpenStack-dev at lists.openstack.org
>             <mailto:OpenStack-dev at lists.openstack.org>
>             http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>         _______________________________________________
>         OpenStack-dev mailing list
>         OpenStack-dev at lists.openstack.org
>         <mailto:OpenStack-dev at lists.openstack.org>
>         http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
>     -- 
>
>     -Dolph
>
>     _______________________________________________
>     OpenStack-dev mailing list
>     OpenStack-dev at lists.openstack.org
>     <mailto:OpenStack-dev at lists.openstack.org>
>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20130726/28db9c19/attachment-0001.html>


More information about the OpenStack-dev mailing list