diff --git a/migrations/versions/0011_ad_provider_details.py b/migrations/versions/0011_ad_provider_details.py index 4bc95a288..b7ea76c27 100644 --- a/migrations/versions/0011_ad_provider_details.py +++ b/migrations/versions/0011_ad_provider_details.py @@ -29,10 +29,10 @@ def upgrade(): op.add_column('provider_rates', sa.Column('provider_id', postgresql.UUID(as_uuid=True), nullable=True)) op.create_index(op.f('ix_provider_rates_provider_id'), 'provider_rates', ['provider_id'], unique=False) - op.create_foreign_key(None, 'provider_rates', 'provider_details', ['provider_id'], ['id']) + op.create_foreign_key("provider_rate_to_provider_fk", 'provider_rates', 'provider_details', ['provider_id'], ['id']) op.add_column('provider_statistics', sa.Column('provider_id', postgresql.UUID(as_uuid=True), nullable=True)) op.create_index(op.f('ix_provider_statistics_provider_id'), 'provider_statistics', ['provider_id'], unique=False) - op.create_foreign_key(None, 'provider_statistics', 'provider_details', ['provider_id'], ['id']) + op.create_foreign_key('provider_stats_to_provider_fk', 'provider_statistics', 'provider_details', ['provider_id'], ['id']) op.execute( "INSERT INTO provider_details (id, display_name, identifier, priority, notification_type, active) values ('{}', 'MMG', 'mmg', 10, 'sms', true)".format(str(uuid.uuid4())) @@ -64,11 +64,12 @@ def upgrade(): def downgrade(): - op.drop_constraint(None, 'provider_statistics', type_='foreignkey') + op.drop_constraint('provider_stats_to_provider_fk', 'provider_statistics', type_='foreignkey') op.drop_index(op.f('ix_provider_statistics_provider_id'), table_name='provider_statistics') op.drop_column('provider_statistics', 'provider_id') - op.drop_constraint(None, 'provider_rates', type_='foreignkey') + op.drop_constraint('provider_rate_to_provider_fk', 'provider_rates', type_='foreignkey') op.drop_index(op.f('ix_provider_rates_provider_id'), table_name='provider_rates') op.drop_column('provider_rates', 'provider_id') op.drop_table('provider_details') + op.execute('drop type notification_type') diff --git a/migrations/versions/0012_complete_provider_details.py b/migrations/versions/0012_complete_provider_details.py index 2516cfabf..946be5fcd 100644 --- a/migrations/versions/0012_complete_provider_details.py +++ b/migrations/versions/0012_complete_provider_details.py @@ -13,6 +13,8 @@ down_revision = '0011_ad_provider_details' from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql +from sqlalchemy.dialects.postgresql import ENUM + def upgrade(): @@ -24,15 +26,55 @@ def upgrade(): existing_type=postgresql.UUID(), nullable=False) op.drop_column('provider_statistics', 'provider') + op.execute('drop type providers') def downgrade(): - op.add_column('provider_statistics', sa.Column('provider', postgresql.ENUM('mmg', 'twilio', 'firetext', 'ses', name='providers'), autoincrement=False, nullable=False)) + provider_enum = ENUM('loadtesting', 'firetext', 'mmg', 'ses', name='providers', create_type=True) + provider_enum.create(op.get_bind(), checkfirst=False) + + op.add_column('provider_statistics', sa.Column('provider', provider_enum, autoincrement=False, nullable=True)) op.alter_column('provider_statistics', 'provider_id', existing_type=postgresql.UUID(), nullable=True) - op.add_column('provider_rates', sa.Column('provider', postgresql.ENUM('mmg', 'twilio', 'firetext', 'ses', name='providers'), autoincrement=False, nullable=False)) + op.add_column('provider_rates', sa.Column('provider', provider_enum, autoincrement=False, nullable=True)) op.alter_column('provider_rates', 'provider_id', existing_type=postgresql.UUID(), nullable=True) + + + op.execute( + "UPDATE provider_rates set provider = 'mmg' where provider_id = (select id from provider_details where identifier = 'mmg')" + ) + op.execute( + "UPDATE provider_rates set provider = 'firetext' where provider_id = (select id from provider_details where identifier = 'firetext')" + ) + op.execute( + "UPDATE provider_rates set provider = 'ses' where provider_id = (select id from provider_details where identifier = 'ses')" + ) + op.execute( + "UPDATE provider_rates set provider = 'loadtesting' where provider_id = (select id from provider_details where identifier = 'loadtesting')" + ) + + op.execute( + "UPDATE provider_statistics set provider = 'mmg' where provider_id = (select id from provider_details where identifier = 'mmg')" + ) + op.execute( + "UPDATE provider_statistics set provider = 'firetext' where provider_id = (select id from provider_details where identifier = 'firetext')" + ) + op.execute( + "UPDATE provider_statistics set provider = 'ses' where provider_id = (select id from provider_details where identifier = 'ses')" + ) + op.execute( + "UPDATE provider_statistics set provider = 'loadtesting' where provider_id = (select id from provider_details where identifier = 'loadtesting')" + ) + + + op.alter_column('provider_rates', 'provider', + existing_type=postgresql.UUID(), + nullable=False) + + op.alter_column('provider_statistics', 'provider', + existing_type=postgresql.UUID(), + nullable=False) \ No newline at end of file