From 5675ac808e49845b91bca300a67ce4e9ad7f04c8 Mon Sep 17 00:00:00 2001 From: Jason Koelker Date: Thu, 15 Sep 2011 15:43:32 -0500 Subject: well since sqlalchemy-migrate and sqlalchemy can't agree on what the FK is called, we fall back on just manually dropping it --- .../versions/047_remove_instances_fk_from_vif.py | 25 +++++++++++++++------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'nova') diff --git a/nova/db/sqlalchemy/migrate_repo/versions/047_remove_instances_fk_from_vif.py b/nova/db/sqlalchemy/migrate_repo/versions/047_remove_instances_fk_from_vif.py index 1b32867fb..4b2b9cd9a 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/047_remove_instances_fk_from_vif.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/047_remove_instances_fk_from_vif.py @@ -37,23 +37,32 @@ def upgrade(migrate_engine): # bind migrate_engine to your metadata meta.bind = migrate_engine dialect = migrate_engine.url.get_dialect().name + if dialect.startswith('sqlite'): + return + try: - if not dialect.startswith('sqlite'): - ForeignKeyConstraint(columns=[vifs.c.instance_id], - refcolumns=[instances.c.id]).drop() + ForeignKeyConstraint(columns=[vifs.c.instance_id], + refcolumns=[instances.c.id]).create() except Exception: - logging.error(_("foreign key constraint couldn't be removed")) - raise + try: + migrate_engine.execute("ALTER TABLE migrations DROP " \ + "FOREIGN KEY " \ + "`virtual_interfaces_ibfk_2`;") + except Exception: + logging.error(_("foreign key constraint couldn't be removed")) + raise def downgrade(migrate_engine): # Operations to reverse the above upgrade go here. meta.bind = migrate_engine dialect = migrate_engine.url.get_dialect().name + if dialect.startswith('sqlite'): + return + try: - if not dialect.startswith('sqlite'): - ForeignKeyConstraint(columns=[vifs.c.instance_id], - refcolumns=[instances.c.id]).create() + ForeignKeyConstraint(columns=[vifs.c.instance_id], + refcolumns=[instances.c.id]).create() except Exception: logging.error(_("foreign key constraint couldn't be added")) raise -- cgit