feat(todos): migration domains[], photo_path, gps_lat/lng
This commit is contained in:
@@ -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")
|
||||
Reference in New Issue
Block a user