Files

21 lines
754 B
JavaScript

// 容器启动时执行:按顺序应用 drizzle/ 下尚未执行的迁移
// 仅依赖生产 node_modules 中的 drizzle-orm 与 mysql2(standalone 产物自带)
import { drizzle } from "drizzle-orm/mysql2";
import { migrate } from "drizzle-orm/mysql2/migrator";
import mysql from "mysql2/promise";
const url = process.env.DATABASE_URL;
if (!url) {
console.error("缺少 DATABASE_URL 环境变量");
process.exit(1);
}
const connection = await mysql.createConnection(url);
try {
// xuchao: 容器内固定 /app/drizzle;本地测试可用 MIGRATIONS_DIR 覆盖
await migrate(drizzle(connection), { migrationsFolder: process.env.MIGRATIONS_DIR || "/app/drizzle" });
console.log("数据库迁移完成");
} finally {
await connection.end();
}