Made the downgrades work

This commit is contained in:
Martyn Inglis
2016-05-11 12:56:28 +01:00
parent b8a3e4a972
commit 6493e4db9c
2 changed files with 49 additions and 6 deletions

View File

@@ -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)