Files
notifications-api/migrations/versions/0327_idx_notification_history.py
2026-01-27 07:33:54 -08:00

78 lines
2.8 KiB
Python

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