init_db.py 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/env python3
  2. """Initialise (ou migre) la base de données SQLite. Appelé par les scripts install et upgrade."""
  3. import os
  4. import sys
  5. if len(sys.argv) > 1:
  6. os.environ["BACKUPMANAGER_CONFIG"] = sys.argv[1]
  7. from app import app, db
  8. from sqlalchemy import text
  9. with app.app_context():
  10. db.create_all()
  11. # Migrations manuelles pour les colonnes ajoutées après la création initiale
  12. with db.engine.connect() as conn:
  13. existing = [row[1] for row in conn.execute(text("PRAGMA table_info(jobs)"))]
  14. if "destination_id" not in existing:
  15. conn.execute(text(
  16. "ALTER TABLE jobs ADD COLUMN destination_id INTEGER REFERENCES destinations(id)"
  17. ))
  18. conn.commit()
  19. print("Migration : colonne destination_id ajoutée à jobs.")
  20. if "remote_instance_id" not in existing:
  21. conn.execute(text(
  22. "ALTER TABLE jobs ADD COLUMN remote_instance_id INTEGER REFERENCES remote_instances(id)"
  23. ))
  24. conn.commit()
  25. print("Migration : colonne remote_instance_id ajoutée à jobs.")
  26. print("Base de données initialisée.")