"""add_status_to_courses Revision ID: 004_add_status_to_courses Revises: 003_add_content_to_courses Create Date: 2026-02-13 11:00:00.000000 """ from alembic import op import sqlalchemy as sa revision = '004_add_status_to_courses' down_revision = '003_add_content_to_courses' branch_labels = None depends_on = None def upgrade(): # Add status column op.add_column('courses', sa.Column('status', sa.String(20), nullable=False, server_default='draft')) # Migrate existing data: if is_published is True → 'published', else → 'draft' op.execute("UPDATE courses SET status = 'published' WHERE is_published IS TRUE") op.execute("UPDATE courses SET status = 'draft' WHERE is_published IS NOT TRUE") # Remove old is_published column op.drop_column('courses', 'is_published') def downgrade(): # Add back is_published column op.add_column('courses', sa.Column('is_published', sa.Boolean(), nullable=False, server_default='FALSE')) # Migrate data back op.execute("UPDATE courses SET is_published = TRUE WHERE status = 'published'") op.execute("UPDATE courses SET is_published = FALSE WHERE status != 'published'") # Remove status column op.drop_column('courses', 'status')