"""Améliorations todos : domains[], photo_path, gps_lat, gps_lng Revision ID: 002 Revises: 001 Create Date: 2026-05-24 """ from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql revision = "002" down_revision = "001" branch_labels = None depends_on = None def upgrade() -> None: # Ajouter colonne domains (ARRAY) — remplace domain (string unique) op.add_column( "items", sa.Column("domains", postgresql.ARRAY(sa.String(50)), server_default=sa.text("'{}'::varchar[]"), nullable=False), schema="todos", ) # Migrer les données existantes : domain → domains[0] op.execute(""" UPDATE todos.items SET domains = ARRAY[domain] WHERE domain IS NOT NULL """) # Garder la colonne domain pour compatibilité lecture (ne pas la supprimer) # Elle sera ignorée côté applicatif # Ajouter champs photo et GPS op.add_column("items", sa.Column("photo_path", sa.Text), schema="todos") op.add_column("items", sa.Column("gps_lat", sa.Float), schema="todos") op.add_column("items", sa.Column("gps_lng", sa.Float), schema="todos") def downgrade() -> None: op.drop_column("items", "domains", schema="todos") op.drop_column("items", "photo_path", schema="todos") op.drop_column("items", "gps_lat", schema="todos") op.drop_column("items", "gps_lng", schema="todos")