Fix db migration script 057 failure on db2

Add a if condition before drop foreign key constraint.

Closes-Bug: #1431250
Change-Id: Idc3afeb8739a608ae618c605eb730a4eb3e3da84
This commit is contained in:
Ethan Lynn 2015-03-12 18:05:30 +08:00
parent 63c942ba11
commit d005f2db6c
1 changed files with 10 additions and 8 deletions

View File

@ -38,10 +38,11 @@ def upgrade_resource_data_pre(migrate_engine):
# remove foreignkey on resource_id
inspector = sqlalchemy.inspect(migrate_engine)
fkc_name = inspector.get_foreign_keys('resource_data')[0]['name']
fkc = ForeignKeyConstraint([rd_table.c.resource_id], [res_table.c.id],
fkc_name)
migrate_engine.execute(DropConstraint(fkc))
fkc_query = inspector.get_foreign_keys('resource_data')
if fkc_query:
fkc = ForeignKeyConstraint([rd_table.c.resource_id], [res_table.c.id],
fkc_query[0]['name'])
migrate_engine.execute(DropConstraint(fkc))
# migrate.ForeignKeyConstraint(columns=[rd_table.c.resource_id],
# refcolumns=[res_table.c.id]).drop()
# rename resource_id -> tmp_res_uuid
@ -284,10 +285,11 @@ def downgrade_resource_data_pre(migrate_engine):
# remove foreignkey on resource_id
inspector = sqlalchemy.inspect(migrate_engine)
fkc_name = inspector.get_foreign_keys('resource_data')[0]['name']
fkc = ForeignKeyConstraint([rd_table.c.resource_id], [res_table.c.id],
fkc_name)
migrate_engine.execute(DropConstraint(fkc))
fkc_query = inspector.get_foreign_keys('resource_data')
if fkc_query:
fkc = ForeignKeyConstraint([rd_table.c.resource_id], [res_table.c.id],
fkc_query[0]['name'])
migrate_engine.execute(DropConstraint(fkc))
# rename resource_id -> tmp_res_id
rd_table.c.resource_id.alter(name='tmp_res_id')