To avoid any table locks and contention on the production database we

are going to add the unique index concurrently. This only works if we
execute a commit first.
This commit is contained in:
Rebecca Law
2021-04-23 15:08:23 +01:00
parent a637c8eb92
commit 490efad97a

View File

@@ -5,16 +5,28 @@ Revises: 0350_update_rates
Create Date: 2021-04-12 09:02:45.098875
"""
import os
from alembic import op
revision = '0351_unique_key_annual_billing'
down_revision = '0350_update_rates'
environment = os.environ['NOTIFY_ENVIRONMENT']
def upgrade():
op.create_unique_constraint(
'uix_service_id_financial_year_start', 'annual_billing', ['service_id', 'financial_year_start']
)
index = """
CREATE UNIQUE INDEX CONCURRENTLY uix_service_id_financial_year_start
ON annual_billing (service_id, financial_year_start)
"""
constraint = """
ALTER TABLE annual_BILLING add constraint uix_service_id_financial_year_start
UNIQUE USING INDEX uix_service_id_financial_year_start
"""
op.execute('COMMIT')
op.execute(index)
op.execute(constraint)
def downgrade():