28 lines
1.1 KiB
TypeScript
28 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',
|
|||
|
|
},
|
|||
|
|
});
|