| import sys | |
| import os | |
| from pathlib import Path | |
| # Add project root to sys.path | |
| sys.path.append(str(Path(__file__).resolve().parent.parent)) | |
| from backend.database.connection import get_connection | |
| def run_migration(): | |
| sql_path = Path(__file__).resolve().parent.parent / "backend" / "database" / "migration_001_unified_metadata.sql" | |
| with open(sql_path, "r") as f: | |
| sql = f.read() | |
| commands = [cmd.strip() for cmd in sql.split(";") if cmd.strip()] | |
| with get_connection() as conn: | |
| cursor = conn.cursor() | |
| for command in commands: | |
| if command.upper().startswith("USE "): | |
| cursor.execute(command) | |
| continue | |
| print(f"Executing: {command}") | |
| try: | |
| cursor.execute(command) | |
| conn.commit() | |
| print("Success.") | |
| except Exception as e: | |
| if "Duplicate column name" in str(e) or "Duplicate key name" in str(e): | |
| print(f"Skipping: Already exists.") | |
| else: | |
| print(f"Failed: {e}") | |
| print("Migration process finished.") | |
| if __name__ == "__main__": | |
| run_migration() | |