app-template/packages/db/drizzle.config.ts

30 lines
1.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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"],
},
});