"""change_linkfire_data_structure Revision ID: 33960d440b60 Revises: e54ad31b2dab Create Date: 2021-06-03 10:52:03.863302 """ from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql from migrations.fixtures.delphi_tables.views import DelphiViews from migrations.fixtures.delphi_tables.v1.tables import DelphiTables from migrations.fixtures.delphi_tables.v1.data_migrator import DataMigrator from migrations.fixtures.delphi_tables.v1.trigger_migrator import TriggerMigrator from migrations.fixtures.delphi_tables.v1.triggers.linkfire_campaign_trigger import LinkfireCampaignTrigger from migrations.fixtures.delphi_tables.v1.triggers.linkfire_project_trigger import LinkfireProjectTrigger # revision identifiers, used by Alembic. revision = '33960d440b60' down_revision = 'e54ad31b2dab' branch_labels = None depends_on = None def upgrade(): op.alter_column('Linkfire', 'link_url', existing_type=postgresql.UUID(), nullable=False) op.execute( """ DROP VIEW IF EXISTS linkfire_project_view; DROP VIEW IF EXISTS linkfire_campaign_view; DROP TABLE IF EXISTS linkfire_project; DROP TABLE IF EXISTS linkfire_campaign; """ ) bind = op.get_bind() delphi_views = DelphiViews(bind) delphi_tables = DelphiTables(bind) bind.execute(delphi_views.linkfire_campaign_view()) bind.execute(delphi_views.linkfire_project_view()) delphi_tables.drop() delphi_tables.create() for klass in [LinkfireCampaignTrigger, LinkfireProjectTrigger]: TriggerMigrator(bind, klass()).rollback() TriggerMigrator(bind, klass()).upgrade() data_migrator = DataMigrator(bind) data_migrator.execute() data_migrator.refresh_linkfire_tables() delphi_tables.reindex() def downgrade(): op.alter_column('Linkfire', 'link_url', existing_type=sa.String(), nullable=False)