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

66 lines
1.8 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Apply migration 009: Add thumbnail_path field
"""
import sqlite3
from pathlib import Path
# Database path
DB_PATH = Path(__file__).parent / "data" / "peripherals.db"
MIGRATION_FILE = Path(__file__).parent / "migrations" / "009_add_thumbnail_path.sql"
def apply_migration():
"""Apply migration 009"""
print(f"Applying migration 009 to {DB_PATH}")
if not DB_PATH.exists():
print(f"❌ Database not found: {DB_PATH}")
return False
if not MIGRATION_FILE.exists():
print(f"❌ Migration file not found: {MIGRATION_FILE}")
return False
# Read migration SQL
with open(MIGRATION_FILE, 'r', encoding='utf-8') as f:
migration_sql = f.read()
# Connect and execute
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
try:
# Split by semicolon and execute each statement
statements = [s.strip() for s in migration_sql.split(';') if s.strip() and not s.strip().startswith('--')]
for statement in statements:
if statement:
cursor.execute(statement)
conn.commit()
print("✅ Migration 009 applied successfully")
print(" - Added thumbnail_path column")
# Verify column exists
cursor.execute("PRAGMA table_info(peripheral_photos)")
columns = cursor.fetchall()
column_names = [col[1] for col in columns]
if 'thumbnail_path' in column_names:
print("✅ Verification: thumbnail_path column exists in peripheral_photos table")
else:
print("⚠️ Warning: Verification failed")
return True
except sqlite3.Error as e:
print(f"❌ Error applying migration: {e}")
conn.rollback()
return False
finally:
conn.close()
if __name__ == "__main__":
apply_migration()