"""make_duration_nullable Revision ID: b7e4d2f91a83 Revises: a8f3b92c1d04 Create Date: 2026-06-02 00:00:00.000000 Make min_duration and max_duration nullable so that new projects can opt out of specifying a clip duration range (letting Gemini decide freely, max 30s). Existing rows keep their stored values unchanged. """ import sqlalchemy as sa from alembic import op revision = 'b7e4d2f91a83' down_revision = 'a8f3b92c1d04' branch_labels = None depends_on = None def upgrade(): op.alter_column('project', 'min_duration', nullable=True, existing_type=sa.Float()) op.alter_column('project', 'max_duration', nullable=True, existing_type=sa.Float()) def downgrade(): # Rows with NULL will get 0.0 as the fallback — callers should treat 0.0 as unset. op.execute("UPDATE project SET min_duration = 13.0 WHERE min_duration IS NULL") op.execute("UPDATE project SET max_duration = 17.0 WHERE max_duration IS NULL") op.alter_column('project', 'min_duration', nullable=False, existing_type=sa.Float()) op.alter_column('project', 'max_duration', nullable=False, existing_type=sa.Float())