Files
notifications-api/migrations/versions/0081_noti_status_as_enum.py
Cliff Hill 1157f5639d black, isort, flake8
Signed-off-by: Cliff Hill <Clifford.hill@gsa.gov>
2023-12-08 21:43:52 -05:00

74 lines
2.0 KiB
Python

"""empty message
Revision ID: 0081_noti_status_as_enum
Revises: 0078_sent_notification_status
Create Date: 2017-05-02 14:50:04.070874
"""
# revision identifiers, used by Alembic.
revision = "0081_noti_status_as_enum"
down_revision = "0078_sent_notification_status"
import sqlalchemy as sa
from alembic import op
def upgrade():
status_table = op.create_table(
"notification_status_types",
sa.Column("name", sa.String(), nullable=False),
sa.PrimaryKeyConstraint("name"),
)
op.bulk_insert(
status_table,
[
{"name": x}
for x in {
"created",
"sending",
"delivered",
"pending",
"failed",
"technical-failure",
"temporary-failure",
"permanent-failure",
"sent",
}
],
)
op.execute("ALTER TABLE notifications ADD COLUMN notification_status text")
op.execute("ALTER TABLE notification_history ADD COLUMN notification_status text")
op.create_index(
op.f("ix_notifications_notification_status"),
"notifications",
["notification_status"],
)
op.create_index(
op.f("ix_notification_history_notification_status"),
"notification_history",
["notification_status"],
)
op.create_foreign_key(
"fk_notifications_notification_status",
"notifications",
"notification_status_types",
["notification_status"],
["name"],
)
op.create_foreign_key(
"fk_notification_history_notification_status",
"notification_history",
"notification_status_types",
["notification_status"],
["name"],
)
def downgrade():
op.execute("ALTER TABLE notifications DROP COLUMN notification_status")
op.execute("ALTER TABLE notification_history DROP COLUMN notification_status")
op.execute("DROP TABLE notification_status_types")