Files
serv_benchmark/backend/apply_migration_007.py
Gilles Soulier c67befc549 addon
2026-01-05 16:08:01 +01:00

56 lines
1.6 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Apply migration 007: Add cli_yaml and cli_raw fields
"""
import sqlite3
from pathlib import Path
# Database paths
PERIPHERALS_DB = Path(__file__).parent / "data" / "peripherals.db"
MIGRATION_FILE = Path(__file__).parent / "migrations" / "007_add_cli_split_fields.sql"
def apply_migration():
"""Apply the migration"""
if not PERIPHERALS_DB.exists():
print(f"Error: Database not found at {PERIPHERALS_DB}")
return False
if not MIGRATION_FILE.exists():
print(f"Error: Migration file not found at {MIGRATION_FILE}")
return False
# Read migration SQL
with open(MIGRATION_FILE, 'r') as f:
migration_sql = f.read()
# Apply migration
conn = sqlite3.connect(str(PERIPHERALS_DB))
try:
# Check if columns already exist
cursor = conn.cursor()
cursor.execute("PRAGMA table_info(peripherals)")
columns = [row[1] for row in cursor.fetchall()]
if 'cli_yaml' in columns and 'cli_raw' in columns:
print("✓ Migration already applied (cli_yaml and cli_raw columns exist)")
return True
# Execute migration
cursor.executescript(migration_sql)
conn.commit()
print("✓ Migration 007 applied successfully")
print(" - Added cli_yaml column")
print(" - Added cli_raw column")
print(" - Migrated existing cli data to cli_raw")
return True
except Exception as e:
print(f"✗ Migration failed: {e}")
conn.rollback()
return False
finally:
conn.close()
if __name__ == "__main__":
apply_migration()