| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- """persist project_constraints
- Revision ID: f647c6bd94ae
- Revises: a2c893432a1f
- Create Date: 2026-07-27 01:29:36.369652
- """
- import json
- import sqlalchemy as sa
- from alembic import op
- # revision identifiers, used by Alembic.
- revision = "f647c6bd94ae"
- down_revision = "a2c893432a1f"
- branch_labels = None
- depends_on = None
- def upgrade():
- default_constraints = json.dumps(
- {
- "dejeuner_start": 11,
- "dejeuner_end": 14,
- "diner_start": 19,
- "diner_end": 22,
- "nuit_start": 22,
- "nuit_end": 10,
- "duree_repas_h": 1.0,
- "duree_nuit_h": 8.0,
- "duree_pause_h": 0.5,
- }
- )
- op.add_column(
- "projects",
- sa.Column(
- "constraints",
- sa.JSON(),
- nullable=False,
- server_default=default_constraints,
- ),
- )
- # drop the server_default after backfill so future inserts must go through
- # the Pydantic model (PlanningConstraints) rather than silently relying on
- # a DB-level default that can drift from the schema's defaults over time
- op.alter_column("projects", "constraints", server_default=None)
- def downgrade():
- op.drop_column("projects", "constraints")
|