Files
serv_benchmark/backend/apply_migration_017.py
2026-01-11 23:41:30 +01:00

75 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Migration 017: Ajout des champs Proxmox
"""
import sqlite3
import sys
from pathlib import Path
# Configuration
DB_PATH = Path(__file__).parent / "data" / "data.db"
MIGRATION_FILE = Path(__file__).parent / "migrations" / "017_add_proxmox_fields.sql"
def main():
if not DB_PATH.exists():
print(f"❌ Base de données non trouvée: {DB_PATH}")
sys.exit(1)
# Lire le fichier SQL
with open(MIGRATION_FILE, 'r') as f:
sql = f.read()
# Connexion à la BDD
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
try:
# Vérifier si les colonnes existent déjà
cursor.execute("PRAGMA table_info(hardware_snapshots)")
columns = [col[1] for col in cursor.fetchall()]
existing = []
if 'is_proxmox_host' in columns:
existing.append('is_proxmox_host')
if 'is_proxmox_guest' in columns:
existing.append('is_proxmox_guest')
if 'proxmox_version' in columns:
existing.append('proxmox_version')
if len(existing) == 3:
print("✅ Toutes les colonnes Proxmox existent déjà")
return
elif existing:
print(f"⚠️ Colonnes existantes: {', '.join(existing)}")
# Appliquer la migration
print("🔧 Application de la migration 017...")
cursor.executescript(sql)
conn.commit()
print("✅ Migration 017 appliquée avec succès")
# Vérifier
cursor.execute("PRAGMA table_info(hardware_snapshots)")
columns_after = [col[1] for col in cursor.fetchall()]
success = True
for col in ['is_proxmox_host', 'is_proxmox_guest', 'proxmox_version']:
if col in columns_after:
print(f"✅ Colonne {col} ajoutée")
else:
print(f"❌ Erreur: colonne {col} non ajoutée")
success = False
if not success:
sys.exit(1)
except Exception as e:
print(f"❌ Erreur lors de la migration: {e}")
conn.rollback()
sys.exit(1)
finally:
conn.close()
if __name__ == "__main__":
main()