""" Revision ID: 0327_idx_notification_history Revises: 0326_broadcast_event Create Date: 2020-07-28 08:11:07.666708 """ import os from alembic import op revision = '0327_idx_notification_history' down_revision = '0326_broadcast_event' environment = os.environ['NOTIFY_ENVIRONMENT'] def upgrade(): if environment not in ["live", "production"]: op.execute('DROP INDEX IF EXISTS ix_notifications_service_id_created_at') op.execute('DROP INDEX IF EXISTS ix_notification_history_created_at') op.execute('DROP INDEX IF EXISTS ix_notification_history_service_id_created_at') index = """ CREATE INDEX IF NOT EXISTS ix_notification_history_service_id_composite on notification_history(service_id, key_type, notification_type, created_at) """ op.execute(index) composite_index = """ CREATE INDEX IF NOT EXISTS ix_notifications_notification_type_composite on notifications(notification_type, notification_status, created_at) """ op.execute(composite_index) # need to run on PROD op.execute('DROP INDEX IF EXISTS ix_notification_history_service_id') op.execute('DROP INDEX IF EXISTS ix_notification_history_template_id') op.execute('DROP INDEX IF EXISTS ix_notification_history_notification_status') op.execute('DROP INDEX IF EXISTS ix_notification_history_notification_type') def downgrade(): if environment not in ["live", "production"]: op.execute(""" CREATE INDEX IF NOT EXISTS ix_notifications_service_id_created_at ON notifications(service_id, date(created_at)) """) op.execute(""" CREATE INDEX IF NOT EXISTS ix_notification_history_created_at on notification_history(created_at) """) op.execute(""" CREATE INDEX IF NOT EXISTS ix_notification_history_service_id_created_at on notification_history(created_at) """) op.execute('DROP INDEX IF EXISTS ix_notification_history_service_id_composite') # need to run on PROD op.execute('DROP INDEX IF EXISTS ix_notifications_notification_type_composite') op.execute('CREATE INDEX IF NOT EXISTS ix_notification_history_service_id on notification_history (service_id)') op.execute(""" CREATE INDEX IF NOT EXISTS ix_notification_history_template_id on notification_history (template_id) """) op.execute(""" CREATE INDEX IF NOT EXISTS ix_notification_history_notification_status on notification_history (notification_status) """) op.execute(""" CREATE INDEX IF NOT EXISTS ix_notification_history_notification_type on notification_history (notification_type) """)