Files
notifications-api/migrations/versions/0358_remove_sched_notifications_.py
Rebecca Law ae29ae28e5 Adding CONCURRENTLY to the drop index statement.
Drop index concurrently will drop the index without locking out concurrent selects, inserts, updates, and deletes on the index's table namely on notifications.
2021-07-08 08:12:18 +01:00

36 lines
1.5 KiB
Python

"""
Revision ID: 0358_remove_sched_notifications
Revises: 0357_validate_constraint
Create Date: 2021-06-07 09:09:06.376862
"""
import sqlalchemy as sa
from alembic import op
from sqlalchemy.dialects import postgresql
revision = '0358_remove_sched_notifications'
down_revision = '0357_validate_constraint'
def upgrade():
# drop index concurrently will drop the index without locking out concurrent
# selects, inserts, updates, and deletes on the index's table namely on notifications
# First we need to issue a commit to clear the transaction block.
op.execute('COMMIT')
op.execute('DROP INDEX CONCURRENTLY ix_scheduled_notifications_notification_id')
op.drop_table('scheduled_notifications')
def downgrade():
# I've intentionally removed adding the index back from the downgrade method
op.create_table('scheduled_notifications',
sa.Column('id', postgresql.UUID(), autoincrement=False, nullable=False),
sa.Column('notification_id', postgresql.UUID(), autoincrement=False, nullable=False),
sa.Column('scheduled_for', postgresql.TIMESTAMP(), autoincrement=False, nullable=False),
sa.Column('pending', sa.BOOLEAN(), autoincrement=False, nullable=False),
sa.ForeignKeyConstraint(['notification_id'], ['notifications.id'],
name='scheduled_notifications_notification_id_fkey'),
sa.PrimaryKeyConstraint('id', name='scheduled_notifications_pkey')
)