fix: drop server_default before dropping enum type in migration 008
This commit is contained in:
parent
63225a3559
commit
7127237afe
1 changed files with 9 additions and 5 deletions
|
|
@ -18,7 +18,10 @@ depends_on = None
|
||||||
|
|
||||||
|
|
||||||
def upgrade() -> None:
|
def upgrade() -> None:
|
||||||
# 1. Convert column to text to break free of the old enum
|
# 1. Drop server default (it references the old enum type)
|
||||||
|
op.alter_column("source_videos", "processing_status", server_default=None)
|
||||||
|
|
||||||
|
# 2. Convert column to text to break free of the old enum
|
||||||
op.alter_column(
|
op.alter_column(
|
||||||
"source_videos", "processing_status",
|
"source_videos", "processing_status",
|
||||||
type_=sa.Text(),
|
type_=sa.Text(),
|
||||||
|
|
@ -26,23 +29,23 @@ def upgrade() -> None:
|
||||||
postgresql_using="processing_status::text",
|
postgresql_using="processing_status::text",
|
||||||
)
|
)
|
||||||
|
|
||||||
# 2. Drop old enum type
|
# 3. Drop old enum type
|
||||||
op.execute("DROP TYPE IF EXISTS processing_status")
|
op.execute("DROP TYPE IF EXISTS processing_status")
|
||||||
|
|
||||||
# 3. Rename values in the text column
|
# 4. Rename values in the text column
|
||||||
op.execute("UPDATE source_videos SET processing_status = 'not_started' WHERE processing_status = 'pending'")
|
op.execute("UPDATE source_videos SET processing_status = 'not_started' WHERE processing_status = 'pending'")
|
||||||
op.execute("UPDATE source_videos SET processing_status = 'queued' WHERE processing_status = 'transcribed'")
|
op.execute("UPDATE source_videos SET processing_status = 'queued' WHERE processing_status = 'transcribed'")
|
||||||
op.execute("UPDATE source_videos SET processing_status = 'processing' WHERE processing_status = 'extracted'")
|
op.execute("UPDATE source_videos SET processing_status = 'processing' WHERE processing_status = 'extracted'")
|
||||||
op.execute("UPDATE source_videos SET processing_status = 'complete' WHERE processing_status = 'published'")
|
op.execute("UPDATE source_videos SET processing_status = 'complete' WHERE processing_status = 'published'")
|
||||||
|
|
||||||
# 4. Create new enum type
|
# 5. Create new enum type
|
||||||
processing_status = sa.Enum(
|
processing_status = sa.Enum(
|
||||||
"not_started", "queued", "processing", "error", "complete",
|
"not_started", "queued", "processing", "error", "complete",
|
||||||
name="processing_status",
|
name="processing_status",
|
||||||
)
|
)
|
||||||
processing_status.create(op.get_bind(), checkfirst=True)
|
processing_status.create(op.get_bind(), checkfirst=True)
|
||||||
|
|
||||||
# 5. Convert column back to enum
|
# 6. Convert column back to enum with new default
|
||||||
op.alter_column(
|
op.alter_column(
|
||||||
"source_videos", "processing_status",
|
"source_videos", "processing_status",
|
||||||
type_=processing_status,
|
type_=processing_status,
|
||||||
|
|
@ -53,6 +56,7 @@ def upgrade() -> None:
|
||||||
|
|
||||||
|
|
||||||
def downgrade() -> None:
|
def downgrade() -> None:
|
||||||
|
op.alter_column("source_videos", "processing_status", server_default=None)
|
||||||
op.alter_column(
|
op.alter_column(
|
||||||
"source_videos", "processing_status",
|
"source_videos", "processing_status",
|
||||||
type_=sa.Text(),
|
type_=sa.Text(),
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue