diff --git a/alembic/versions/008_rename_processing_status.py b/alembic/versions/008_rename_processing_status.py index a685ffe..8c3cc13 100644 --- a/alembic/versions/008_rename_processing_status.py +++ b/alembic/versions/008_rename_processing_status.py @@ -18,7 +18,10 @@ depends_on = 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( "source_videos", "processing_status", type_=sa.Text(), @@ -26,23 +29,23 @@ def upgrade() -> None: postgresql_using="processing_status::text", ) - # 2. Drop old enum type + # 3. Drop old enum type 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 = '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 = 'complete' WHERE processing_status = 'published'") - # 4. Create new enum type + # 5. Create new enum type processing_status = sa.Enum( "not_started", "queued", "processing", "error", "complete", name="processing_status", ) 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( "source_videos", "processing_status", type_=processing_status, @@ -53,6 +56,7 @@ def upgrade() -> None: def downgrade() -> None: + op.alter_column("source_videos", "processing_status", server_default=None) op.alter_column( "source_videos", "processing_status", type_=sa.Text(),