"""make_campaign_order_constraint_deferrable Revision ID: 6086c70437d8 Revises: 737755c0bb58 Create Date: 2022-06-23 14:51:19.194703 """ from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision = '6086c70437d8' down_revision = '737755c0bb58' branch_labels = None depends_on = None def upgrade(): bind = op.get_bind() op.drop_constraint('uq_Campaign_project_phase_id_order_in_phase', 'Campaign') op.create_unique_constraint( 'uq_Campaign_project_phase_id_order_in_phase', 'Campaign', ['project_phase_id', 'order_in_phase'], deferrable=True, initially="DEFERRED" ) op.alter_column('Campaign', 'name', nullable=True, server_default=None) bind.execute(''' UPDATE "Campaign" set name = null where "Campaign".name = '' and (source = 'dec' or source is null); ''') def downgrade(): bind = op.get_bind() op.drop_constraint('uq_Campaign_project_phase_id_order_in_phase', 'Campaign') op.create_unique_constraint( 'uq_Campaign_project_phase_id_order_in_phase', 'Campaign', ['project_phase_id', 'order_in_phase'], ) bind.execute(''' UPDATE "Campaign" set name = '' where "Campaign".name is null and (source = 'dec' or source is null); ''') op.alter_column('Campaign', 'name', nullable=False, server_default="")