diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-01-20 18:47:09 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-01-20 18:47:09 +0000 |
| commit | 91e019f76746206e109b15957b2bdf59fbf15bcf (patch) | |
| tree | 4fc4a23ba967f1840d7778d74f3049341524ed90 | |
| parent | 889a5215842839342fdbe5b2cb2c7d9053ac36b5 (diff) | |
| parent | 35df99cf1dca5d9b0ca1cb09039845aa8bd3a49b (diff) | |
| download | nova-91e019f76746206e109b15957b2bdf59fbf15bcf.tar.gz nova-91e019f76746206e109b15957b2bdf59fbf15bcf.tar.xz nova-91e019f76746206e109b15957b2bdf59fbf15bcf.zip | |
Merge "Drop FK constraint if it exists in migration 064"
| -rw-r--r-- | nova/db/sqlalchemy/migrate_repo/versions/064_change_instance_id_to_uuid_in_instance_actions.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/064_change_instance_id_to_uuid_in_instance_actions.py b/nova/db/sqlalchemy/migrate_repo/versions/064_change_instance_id_to_uuid_in_instance_actions.py index df9d73028..1bff3b5af 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/064_change_instance_id_to_uuid_in_instance_actions.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/064_change_instance_id_to_uuid_in_instance_actions.py @@ -17,6 +17,7 @@ import sqlalchemy from sqlalchemy import select, Column, ForeignKey, Integer, String +from migrate import ForeignKeyConstraint from nova import log as logging @@ -31,6 +32,7 @@ def _get_table(name): def upgrade(migrate_engine): meta.bind = migrate_engine + dialect = migrate_engine.url.get_dialect().name instance_actions = _get_table('instance_actions') instances = _get_table('instances') uuid_column = Column('instance_uuid', String(36), @@ -48,6 +50,18 @@ def upgrade(migrate_engine): uuid_column.drop() raise + if not dialect.startswith('sqlite'): + fkeys = list(instance_actions.c.instance_id.foreign_keys) + if fkeys: + try: + fkey_name = fkeys[0].constraint.name + ForeignKeyConstraint(columns=[instance_actions.c.instance_id], + refcolumns=[instances.c.id], + name=fkey_name).drop() + except: + logging.error(_("foreign key constraint couldn't be removed")) + raise + instance_actions.c.instance_id.drop() |
