bmc_hub/apply_migration_128.py

42 lines
1.1 KiB
Python
Raw Normal View History

import logging
import os
import sys
sys.path.append(os.getcwd())
from app.core.database import execute_query, init_db
from app.core.config import settings
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def run_migration():
migration_file = "migrations/128_sag_pipeline_fields.sql"
logger.info("Applying migration: %s", migration_file)
try:
if "@postgres" in settings.DATABASE_URL:
logger.info("Patching DATABASE_URL for local run")
settings.DATABASE_URL = settings.DATABASE_URL.replace("@postgres", "@localhost").replace(":5432", ":5433")
init_db()
with open(migration_file, "r", encoding="utf-8") as migration:
sql = migration.read()
commands = [cmd.strip() for cmd in sql.split(";") if cmd.strip()]
for command in commands:
logger.info("Executing migration statement...")
execute_query(command, ())
logger.info("✅ Migration 128 applied successfully")
except Exception as exc:
logger.error("❌ Migration 128 failed: %s", exc)
sys.exit(1)
if __name__ == "__main__":
run_migration()