21 lines
754 B
JavaScript
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();
|
|
}
|