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