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

75 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Migration script to add documentation fields to peripherals table.
Adds: description, synthese, cli columns
"""
import sqlite3
import os
DB_PATH = "backend/data/peripherals.db"
def migrate():
"""Add new columns to peripherals table"""
if not os.path.exists(DB_PATH):
print(f"❌ Database not found: {DB_PATH}")
return False
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
try:
# Check existing columns
cursor.execute("PRAGMA table_info(peripherals)")
existing_columns = [row[1] for row in cursor.fetchall()]
print(f"✅ Found {len(existing_columns)} existing columns")
columns_to_add = []
# Check and add description
if 'description' not in existing_columns:
columns_to_add.append(('description', 'TEXT'))
# Check and add synthese
if 'synthese' not in existing_columns:
columns_to_add.append(('synthese', 'TEXT'))
# Check and add cli
if 'cli' not in existing_columns:
columns_to_add.append(('cli', 'TEXT'))
if not columns_to_add:
print("✅ All columns already exist. No migration needed.")
return True
# Add missing columns
for col_name, col_type in columns_to_add:
sql = f"ALTER TABLE peripherals ADD COLUMN {col_name} {col_type}"
print(f"🔧 Adding column: {col_name} {col_type}")
cursor.execute(sql)
conn.commit()
print(f"✅ Migration completed successfully! Added {len(columns_to_add)} columns.")
# Verify
cursor.execute("PRAGMA table_info(peripherals)")
new_columns = [row[1] for row in cursor.fetchall()]
print(f"✅ Total columns now: {len(new_columns)}")
return True
except sqlite3.Error as e:
print(f"❌ Migration failed: {e}")
conn.rollback()
return False
finally:
conn.close()
if __name__ == "__main__":
print("=" * 60)
print("MIGRATION: Add documentation fields to peripherals")
print("=" * 60)
migrate()