""" 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) """ )