"""update_campaigns_table Revision ID: 769ddb195e51 Revises: 9c343f4c9aa4 Create Date: 2021-11-02 05:41:29.927954 """ from alembic import op import sqlalchemy as sa from migrations.fixtures.delphi_tables.v3.data_refresher import DelphiTablesDataRefresher # revision identifiers, used by Alembic. revision = '769ddb195e51' down_revision = '493a68bb330f' branch_labels = None depends_on = None def upgrade(): conn = op.get_bind() delphi_refresher = DelphiTablesDataRefresher() delphi_refresher.drop_triggers(conn) op.create_table('CampaignStatus', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(), nullable=False), sa.PrimaryKeyConstraint('id', name=op.f('pk_CampaignStatus')) ) conn.execute(''' INSERT INTO "CampaignStatus" (id, name) VALUES (0, 'Planned'), (1, 'Booked'), (2, 'Live'), (3, 'Completed') ''') op.add_column('Campaign', sa.Column('audience_notes', sa.String(), nullable=True)) op.add_column('Campaign', sa.Column('external_name', sa.String(), nullable=True)) op.add_column('Campaign', sa.Column('ad_creative_link', sa.String(), nullable=True)) op.add_column('Campaign', sa.Column('ad_creative_notes', sa.String(), nullable=True)) op.add_column('Campaign', sa.Column('kpi_metrics_field_id', sa.Integer(), nullable=True)) op.add_column('Campaign', sa.Column('campaign_status_id', sa.Integer(), server_default='0', nullable=False)) op.create_foreign_key(op.f('fk_Campaign_campaign_status_id_CampaignStatus'), 'Campaign', 'CampaignStatus', ['campaign_status_id'], ['id']) op.create_foreign_key(op.f('fk_Campaign_kpi_metrics_field_id_MetricsField'), 'Campaign', 'MetricsField', ['kpi_metrics_field_id'], ['id']) conn.execute(f'''UPDATE "Campaign" SET external_name = name WHERE source in ('facebook', 'google')''') delphi_refresher.refresh(conn) def downgrade(): # ### commands auto generated by Alembic - please adjust! ### op.drop_constraint(op.f('fk_Campaign_kpi_metrics_field_id_MetricsField'), 'Campaign', type_='foreignkey') op.drop_constraint(op.f('fk_Campaign_campaign_status_id_CampaignStatus'), 'Campaign', type_='foreignkey') op.drop_column('Campaign', 'campaign_status_id') op.drop_column('Campaign', 'kpi_metrics_field_id') op.drop_column('Campaign', 'ad_creative_notes') op.drop_column('Campaign', 'ad_creative_link') op.drop_column('Campaign', 'audience_notes') op.drop_table('CampaignStatus') # ### end Alembic commands ###