30 lines
1.0 KiB
TypeScript
30 lines
1.0 KiB
TypeScript
import { defineConfig } from "drizzle-kit";
|
||
import path from "node:path";
|
||
import { readFileSync } from "node:fs";
|
||
|
||
// 手动加载根目录 .env(monorepo 中 drizzle-kit 不会自动找到)
|
||
try {
|
||
const env = readFileSync(path.resolve(__dirname, "../../.env"), "utf-8");
|
||
for (const line of env.split("\n")) {
|
||
const [key, ...vals] = line.split("=");
|
||
if (key && !key.startsWith("#")) {
|
||
process.env[key.trim()] = vals.join("=").trim();
|
||
}
|
||
}
|
||
} catch {}
|
||
|
||
const url = process.env["TURSO_DATABASE_URL"];
|
||
if (!url) throw new Error("TURSO_DATABASE_URL is required");
|
||
|
||
export default defineConfig({
|
||
// 指向构建产物:drizzle-kit 以 CJS require 加载,无法解析 src 里 ESM 风格的 .js 后缀相对导入
|
||
schema: "../models/dist/index.js",
|
||
out: "./drizzle",
|
||
dialect: "turso",
|
||
// 本地 file:;线上 libsql:// + token(由根 .env 注入,勿写死)
|
||
dbCredentials: {
|
||
url,
|
||
authToken: process.env["TURSO_AUTH_TOKEN"],
|
||
},
|
||
});
|