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
<[email protected] <mailto:[email protected]>> 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 <[email protected]
<mailto:[email protected]>> 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 <[email protected]
<mailto:[email protected]>> 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
[email protected]
<mailto:[email protected]>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
_______________________________________________
OpenStack-dev mailing list
[email protected]
<mailto:[email protected]>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
--
-Dolph
_______________________________________________
OpenStack-dev mailing list
[email protected]
<mailto:[email protected]>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
_______________________________________________
OpenStack-dev mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
_______________________________________________
OpenStack-dev mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev