import knex, { Knex } from "knex"; import { sdkLogger as logger } from "../../reporting-service/logger.js"; import config from "../../../knexfile.js"; import { getEnvString } from "../../../utils/env.js"; import { signalBreeJobComplete } from "../utils/bree-worker-complete.js"; // Configure the logger with the correct log level logger.level = getEnvString("LOG_LEVEL", "info"); const db: Knex = knex(config.local); export default async function runMigrations() { try { logger.info("Running migrations..."); await db.migrate.latest(); logger.info("Migrations complete!"); } finally { await db.destroy(); } } // Cross-platform module detection fix for Bree compatibility (same as other jobs) const normalizedArgv1 = process.argv[1].replace(/\\/g, "/"); const fileUrl = normalizedArgv1.startsWith("/") ? `file://${normalizedArgv1}` : `file:///${normalizedArgv1}`; const isMainModule = import.meta.url === fileUrl; if (isMainModule) { runMigrations() .then(() => { signalBreeJobComplete(); }) .catch((error) => { logger.error("Error running migrations:", error); process.exit(1); }); }