SafeOps DB Migrations (Alembic/Flask-Migrate)¶
Stato attuale¶
- Migrations inizializzate in
migrations/ - Baseline creata:
ffd6f56f8db2
Primo allineamento su DB già esistente¶
Su ambienti dove le tabelle esistono già (create con db.create_all()):
cd /home/safeops/safeops
/root/.pyenv/versions/safeops/bin/flask --app app db stamp ffd6f56f8db2
Questo non modifica le tabelle: marca solo la baseline come applicata.
Workflow da ora in poi¶
- Modifica modelli SQLAlchemy.
- Genera migration:
/root/.pyenv/versions/safeops/bin/flask --app app db migrate -m "descrizione" - Applica migration:
/root/.pyenv/versions/safeops/bin/flask --app app db upgrade
Comandi utili¶
# storico revisioni
/root/.pyenv/versions/safeops/bin/flask --app app db history
# revisione attuale del DB
/root/.pyenv/versions/safeops/bin/flask --app app db current
# downgrade di una revisione
/root/.pyenv/versions/safeops/bin/flask --app app db downgrade -1
# upgrade su DB default + tutti i tenant attivi con db_uri (tenant_registry)
/root/.pyenv/versions/safeops/bin/flask --app app upgrade_all_tenants
# solo preview target
/root/.pyenv/versions/safeops/bin/flask --app app upgrade_all_tenants --dry-run
# upgrade singolo tenant (o __default__)
/root/.pyenv/versions/safeops/bin/flask --app app upgrade_one_tenant tenant_acme
# stato revisione alembic su tutti i tenant
/root/.pyenv/versions/safeops/bin/flask --app app status_all_tenants
Produzione consigliata¶
Imposta in .env:
DB_AUTO_CREATE=false
db.create_all() automaticamente e lo schema è gestito solo da migration.