"""BETO-364 Digital Advertising Activity Revision ID: e5449c9b44d9 Revises: 5d82f4d6e665 Create Date: 2019-06-11 17:42:39.380022 """ from alembic import op import sqlalchemy as sa from migrations import utils # revision identifiers, used by Alembic. revision = 'e5449c9b44d9' down_revision = '5d82f4d6e665' branch_labels = None depends_on = None def upgrade(): # ### commands auto generated by Alembic - please adjust! ### op.add_column( 'CampaignTypeDetail', sa.Column( 'parent_campaign_type_detail_item_id', sa.Integer(), nullable=True ) ) bind = op.get_bind() session = sa.orm.Session(bind=bind) new_details = [ { 'id': 13, 'name': 'Social Channel', 'campaign_type_id': 10, 'is_text': False, 'parent_campaign_type_detail_item_id': 17 }, { 'id': 14, 'name': 'Search Engine', 'campaign_type_id': 10, 'is_text': False, 'parent_campaign_type_detail_item_id': 21 }, { 'id': 15, 'name': 'Platform', 'campaign_type_id': 10, 'is_text': False, 'parent_campaign_type_detail_item_id': 18 } ] utils.import_data_json("CampaignTypeDetail", new_details) new_items = [ {'id': 21, 'name': 'Paid Search', 'campaign_type_detail_id': 10}, {'id': 22, 'name': 'Display Ads', 'campaign_type_detail_id': 10}, {'id': 23, 'name': 'Branded Content', 'campaign_type_detail_id': 10}, {'id': 24, 'name': 'Home Page Takeovers', 'campaign_type_detail_id': 10}, {'id': 25, 'name': 'Facebook', 'campaign_type_detail_id': 13}, {'id': 26, 'name': 'Instragram', 'campaign_type_detail_id': 13}, {'id': 27, 'name': 'Snapchat', 'campaign_type_detail_id': 13}, {'id': 28, 'name': 'Twitter', 'campaign_type_detail_id': 13}, {'id': 29, 'name': 'Agency Commission', 'campaign_type_detail_id': 13}, {'id': 30, 'name': 'Google', 'campaign_type_detail_id': 14}, {'id': 31, 'name': 'Bing', 'campaign_type_detail_id': 14}, {'id': 32, 'name': 'Amazon', 'campaign_type_detail_id': 14}, {'id': 33, 'name': 'Spotify', 'campaign_type_detail_id': 15}, {'id': 34, 'name': 'Pandora', 'campaign_type_detail_id': 15}, {'id': 35, 'name': 'YouTube', 'campaign_type_detail_id': 15}, {'id': 36, 'name': 'Amazon', 'campaign_type_detail_id': 15} ] utils.import_data_json("CampaignTypeDetailItem", new_items) session.commit() session.close() op.create_foreign_key( op.f( 'fk_CampaignTypeDetail_parent_campaign_type_detail_item_id' + '_CampaignTypeDetailItem' ), 'CampaignTypeDetail', 'CampaignTypeDetailItem', ['parent_campaign_type_detail_item_id'], ['id'] ) # ### end Alembic commands ### def downgrade(): # ### commands auto generated by Alembic - please adjust! ### op.drop_constraint( op.f( 'fk_CampaignTypeDetail_parent_campaign_type_detail_item_id' + '_CampaignTypeDetailItem' ), 'CampaignTypeDetail', type_='foreignkey' ) op.drop_column('CampaignTypeDetail', 'parent_campaign_type_detail_item_id') bind = op.get_bind() session = sa.orm.Session(bind=bind) bind.execute(''' DELETE FROM "CampaignTypeDetailItem" WHERE id BETWEEN 21 AND 36 ''') bind.execute(''' DELETE FROM "CampaignTypeDetail" WHERE id BETWEEN 13 AND 15 ''') session.commit() session.close() # ### end Alembic commands ###