""" Revision ID: 0360_remove_sched_notifications Revises: 0359_more_permissions Create Date: 2021-06-07 09:09:06.376862 """ import sqlalchemy as sa from alembic import op from sqlalchemy.dialects import postgresql revision = '0360_remove_sched_notifications' down_revision = '0359_more_permissions' 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') )