From 3cc3265743fdbacfa4011928cb1ef31cc6ec10a0 Mon Sep 17 00:00:00 2001 From: Jacky Hu Date: Sat, 20 May 2017 08:09:40 +0800 Subject: [PATCH] Fix broken database migration Foreign key was created on provisioning_status for several tables in 9b5473976d6d_add_provisioning_status_to_objects.py. Dropping the constraint before table column is altered, and creating the constraint again afterwards. Change-Id: Ice5411ef9e9648d61d7136fcf531af9a15a83825 --- .../034b2dc2f3e0_modernize_l7policy_fields.py | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/octavia/db/migration/alembic_migrations/versions/034b2dc2f3e0_modernize_l7policy_fields.py b/octavia/db/migration/alembic_migrations/versions/034b2dc2f3e0_modernize_l7policy_fields.py index 4d5ccd213d..545c4cae0a 100644 --- a/octavia/db/migration/alembic_migrations/versions/034b2dc2f3e0_modernize_l7policy_fields.py +++ b/octavia/db/migration/alembic_migrations/versions/034b2dc2f3e0_modernize_l7policy_fields.py @@ -62,6 +62,26 @@ def upgrade(): u'operating_status', [u'operating_status'], [u'name'] ) + op.drop_constraint('fk_health_monitor_provisioning_status_name', + 'health_monitor', + type_='foreignkey') + + op.drop_constraint('fk_l7policy_provisioning_status_name', + 'l7policy', + type_='foreignkey') + + op.drop_constraint('fk_l7rule_provisioning_status_name', + 'l7rule', + type_='foreignkey') + + op.drop_constraint('fk_member_provisioning_status_name', + 'member', + type_='foreignkey') + + op.drop_constraint('fk_pool_provisioning_status_name', + 'pool', + type_='foreignkey') + # provisioning_status was mistakenly added as nullable, the fix is similar op.alter_column(u'l7policy', u'provisioning_status', nullable=False, existing_type=sa.String(16), @@ -94,3 +114,28 @@ def upgrade(): server_default=constants.ACTIVE) op.alter_column(u'l7rule', u'provisioning_status', existing_type=sa.String(16), server_default=None) + + op.create_foreign_key( + u'fk_health_monitor_provisioning_status_name', u'health_monitor', + u'provisioning_status', [u'provisioning_status'], [u'name'] + ) + + op.create_foreign_key( + u'fk_l7policy_provisioning_status_name', u'l7policy', + u'provisioning_status', [u'provisioning_status'], [u'name'] + ) + + op.create_foreign_key( + u'fk_l7rule_provisioning_status_name', u'l7rule', + u'provisioning_status', [u'provisioning_status'], [u'name'] + ) + + op.create_foreign_key( + u'fk_member_provisioning_status_name', u'member', + u'provisioning_status', [u'provisioning_status'], [u'name'] + ) + + op.create_foreign_key( + u'fk_pool_provisioning_status_name', u'pool', + u'provisioning_status', [u'provisioning_status'], [u'name'] + )