Files
notifications-api/migrations/versions/0327_idx_notification_history.py
2024-04-01 15:12:33 -07:00

90 lines
2.9 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)
"""
)