"""Harden nullable financial-period uniqueness. Revision ID: 0005 Revises: 0004 """ from alembic import op revision = "0005" down_revision = "0004" branch_labels = None depends_on = None def upgrade() -> None: op.execute( "ALTER TABLE financial_periods " "DROP CONSTRAINT IF EXISTS uq_financial_period" ) op.execute( "ALTER TABLE financial_periods " "ADD CONSTRAINT uq_financial_period " "UNIQUE NULLS NOT DISTINCT " "(security_id, period_end, period_type, filing_date)" ) def downgrade() -> None: op.execute( "ALTER TABLE financial_periods " "DROP CONSTRAINT IF EXISTS uq_financial_period" ) op.execute( "ALTER TABLE financial_periods " "ADD CONSTRAINT uq_financial_period " "UNIQUE " "(security_id, period_end, period_type, filing_date)" )