"""add_campaign_name_autogenerated_field Revision ID: 616c4ad2b4a5 Revises: f698fe3b0b90 Create Date: 2022-05-16 13:17:51.577778 """ from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision = '616c4ad2b4a5' down_revision = 'f698fe3b0b90' branch_labels = None depends_on = None def upgrade(): op.add_column('Campaign', sa.Column('name_autogenerated', sa.Boolean(), nullable=False, server_default="FALSE")) op.execute(''' UPDATE "Campaign" AS C SET name_autogenerated = true WHERE C.source = 'dec' AND C.name IN (select unnest(array[concat("CampaignTypes".name, ' | ', string_agg("CampaignPlatforms".name, ', ')), concat(' | ', string_agg("CampaignPlatforms".name, ', ')), concat("CampaignTypes".name, ' | Various Platforms')]) from "Campaign" join "CampaignPlatformsLinks" on "CampaignPlatformsLinks"."campaign_id" = "Campaign"."id" join "CampaignPlatforms" on "CampaignPlatforms"."id" = "CampaignPlatformsLinks"."platform_id" join "CampaignTypes" on "CampaignTypes"."id" = "Campaign"."type_id" where "Campaign".id = C.id group by "Campaign".id, "CampaignTypes".name ) OR C.name = ' | Various Platforms' ''') def downgrade(): op.drop_column('Campaign', 'name_autogenerated')