mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-10 23:32:27 -05:00
70 lines
2.2 KiB
Python
70 lines
2.2 KiB
Python
"""empty message
|
|
|
|
Revision ID: 0032_notification_created_status
|
|
Revises: 0031_store_personalisation
|
|
Create Date: 2016-06-21 11:29:28.963615
|
|
|
|
"""
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = "0032_notification_created_status"
|
|
down_revision = "0031_store_personalisation"
|
|
|
|
import sqlalchemy as sa
|
|
from alembic import op
|
|
|
|
|
|
def upgrade():
|
|
### commands auto generated by Alembic - please adjust! ###
|
|
status_type = sa.Enum(
|
|
"created",
|
|
"sending",
|
|
"delivered",
|
|
"pending",
|
|
"failed",
|
|
"technical-failure",
|
|
"temporary-failure",
|
|
"permanent-failure",
|
|
name="notify_status_type",
|
|
)
|
|
status_type.create(op.get_bind())
|
|
op.add_column("notifications", sa.Column("new_status", status_type, nullable=True))
|
|
op.execute(
|
|
"update notifications set new_status = CAST(CAST(status as text) as notify_status_type)"
|
|
)
|
|
op.alter_column("notifications", "status", new_column_name="old_status")
|
|
op.alter_column("notifications", "new_status", new_column_name="status")
|
|
op.drop_column("notifications", "old_status")
|
|
op.get_bind()
|
|
op.execute("DROP TYPE notify_status_types")
|
|
op.alter_column("notifications", "status", nullable=False)
|
|
|
|
### end Alembic commands ###
|
|
|
|
|
|
def downgrade():
|
|
### commands auto generated by Alembic - please adjust! ###
|
|
status_type = sa.Enum(
|
|
"sending",
|
|
"delivered",
|
|
"pending",
|
|
"failed",
|
|
"technical-failure",
|
|
"temporary-failure",
|
|
"permanent-failure",
|
|
name="notify_status_types",
|
|
)
|
|
status_type.create(op.get_bind())
|
|
op.add_column("notifications", sa.Column("old_status", status_type, nullable=True))
|
|
op.execute("update notifications set status = 'sending' where status = 'created'")
|
|
op.execute(
|
|
"update notifications set old_status = CAST(CAST(status as text) as notify_status_types)"
|
|
)
|
|
op.alter_column("notifications", "status", new_column_name="new_status")
|
|
op.alter_column("notifications", "old_status", new_column_name="status")
|
|
op.drop_column("notifications", "new_status")
|
|
op.get_bind()
|
|
op.execute("DROP TYPE notify_status_type")
|
|
op.alter_column("notifications", "status", nullable=False)
|
|
### end Alembic commands ###
|