Files
ALwrity/backend/scripts/run_cumulative_stats_migration.py

57 lines
1.6 KiB
Python

#!/usr/bin/env python3
"""
Script to run the cumulative stats migration.
This creates the scheduler_cumulative_stats table.
"""
import sqlite3
import os
import sys
import argparse
# Get the database path
script_dir = os.path.dirname(os.path.abspath(__file__))
backend_dir = os.path.dirname(script_dir)
sys.path.insert(0, str(backend_dir))
from services.database import get_user_db_path
def run_migration(user_id=None):
if user_id:
db_path = get_user_db_path(user_id)
print(f"Targeting user database: {db_path}")
else:
print("❌ Error: user_id is required for migration.")
return False
migration_path = os.path.join(backend_dir, 'database', 'migrations', 'create_scheduler_cumulative_stats.sql')
if not os.path.exists(db_path):
print(f"❌ Database not found at {db_path}")
return False
if not os.path.exists(migration_path):
print(f"❌ Migration file not found at {migration_path}")
return False
try:
conn = sqlite3.connect(db_path)
with open(migration_path, 'r') as f:
conn.executescript(f.read())
conn.commit()
print("✅ Migration executed successfully")
conn.close()
return True
except Exception as e:
print(f"❌ Error running migration: {e}")
return False
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Run cumulative stats migration")
parser.add_argument("--user_id", help="Target specific user ID")
args = parser.parse_args()
success = run_migration(args.user_id)
sys.exit(0 if success else 1)