29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
import path from 'node:path';
|
||
import { fileURLToPath } from 'node:url';
|
||
import { config as loadEnv } from 'dotenv';
|
||
import { defineConfig } from 'prisma/config';
|
||
|
||
/**
|
||
* Prisma 7 使用 prisma.config.ts 取代了旧的 package.json#prisma 配置块,
|
||
* 并且 datasource 的 url 从 schema.prisma 迁移到这里。
|
||
*
|
||
* 注意:Prisma 7 的生成器不再自动加载 .env,因此这里显式加载
|
||
* packages/server/.env(以 config 文件所在目录为基准,避免依赖 cwd)。
|
||
*/
|
||
const configDir = path.dirname(fileURLToPath(import.meta.url));
|
||
loadEnv({ path: path.join(configDir, '.env') });
|
||
|
||
export default defineConfig({
|
||
schema: 'prisma/schema.prisma',
|
||
migrations: {
|
||
path: 'prisma/migrations',
|
||
// 直接指向 tsx 的入口,避免依赖 shell 的 PATH 里是否有 node_modules/.bin
|
||
seed: 'node ./node_modules/tsx/dist/cli.mjs prisma/seed.ts',
|
||
},
|
||
datasource: {
|
||
// SQLite:file:./prisma/dev.db 会由 src/config/env.ts 解析为绝对路径;
|
||
// MySQL:mysql://user:password@host:3306/classhelper
|
||
url: process.env.DATABASE_URL ?? 'file:./prisma/dev.db',
|
||
},
|
||
});
|