LinkDesk/backend/fix_project_enums.py

57 lines
2.0 KiB
Python

#!/usr/bin/env python3
"""
Fix project enum values in the database to match the model definitions.
"""
import sqlite3
from pathlib import Path
def fix_project_enums():
"""Fix project enum values to match model definitions."""
print("Fixing Project Enum Values")
print("=" * 30)
db_path = "vfx_project_management.db"
try:
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
# Fix project_type values
print("1. Fixing project_type values...")
cursor.execute("UPDATE projects SET project_type = 'cinema' WHERE project_type = 'CINEMA'")
cursor.execute("UPDATE projects SET project_type = 'tv' WHERE project_type = 'TV'")
cursor.execute("UPDATE projects SET project_type = 'game' WHERE project_type = 'GAME'")
# Fix status values
print("2. Fixing status values...")
cursor.execute("UPDATE projects SET status = 'planning' WHERE status = 'PLANNING'")
cursor.execute("UPDATE projects SET status = 'in_progress' WHERE status = 'IN_PROGRESS'")
cursor.execute("UPDATE projects SET status = 'on_hold' WHERE status = 'ON_HOLD'")
cursor.execute("UPDATE projects SET status = 'completed' WHERE status = 'COMPLETED'")
cursor.execute("UPDATE projects SET status = 'cancelled' WHERE status = 'CANCELLED'")
# Commit changes
conn.commit()
# Verify the changes
print("\n3. Verifying changes...")
cursor.execute("SELECT id, name, project_type, status FROM projects")
projects = cursor.fetchall()
for project in projects:
print(f" ID {project[0]}: {project[1]} - Type: {project[2]}, Status: {project[3]}")
print("\n✅ Project enum values fixed successfully!")
except Exception as e:
print(f"❌ Error: {e}")
if conn:
conn.rollback()
finally:
if conn:
conn.close()
if __name__ == "__main__":
fix_project_enums()