feat(todos): migration domains[], photo_path, gps_lat/lng

This commit is contained in:
2026-05-24 16:01:18 +02:00
parent 134f6ba5f5
commit a97894437a
@@ -0,0 +1,43 @@
"""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")