SuperAPI AI 工具集

prisma-upgrade-v7-env-variables

编程与开发

查看项目

更新于 10-16 04:33

技能介绍

用途:这是 Prisma v7 的环境变量迁移说明,帮助从 v6 升级时处理 .env 自动加载行为的变化。

主要变化:v6 中 Prisma CLI 会自动加载 .env 文件;v7 不再自动加载,必须显式加载环境变量,可使用 dotenv 或类似工具。

配置方式:先安装 dotenv:npm install dotenv。然后在 prisma.config.ts 中导入,且必须放在首个导入位置:import 'dotenv/config',再使用 defineConfig 与 env('DATABASE_URL') 配置 datasource.url。

Bun 用户:Bun 会自动加载 .env 文件,无需额外设置,直接在 prisma.config.ts 中使用 defineConfig 与 env() 即可。

多个 .env 文件:可用 dotenv-cli,安装 npm install -D dotenv-cli,并在 scripts 中通过 dotenv -e .env.local -- prisma migrate dev 等方式指定文件;也可在 prisma.config.ts 中用 dotenv 的 config({ path: ... }) 加载特定文件。

应用代码:在入口处导入 'dotenv/config',或显式调用 config(),之后 process.env.DATABASE_URL 可用。

类型安全:prisma/config 的 env() 函数提供类型安全访问,但仅在 prisma.config.ts 内有效,不能用于应用代码。

被移除的变量:v7 移除了多个 Prisma 专用环境变量,如 PRISMA_CLI_QUERY_ENGINE_TYPE、PRISMA_CLIENT_ENGINE_TYPE、PRISMA_QUERY_ENGINE_BINARY、PRISMA_QUERY_ENGINE_LIBRARY、PRISMA_GENERATE_SKIP_AUTOINSTALL、PRISMA_SKIP_POSTINSTALL_GENERATE、PRISMA_GENERATE_IN_POSTINSTALL、PRISMA_GENERATE_DATAPROXY、PRISMA_GENERATE_NO_ENGINE、PRISMA_CLIENT_NO_RETRY、PRISMA_MIGRATE_SKIP_GENERATE、PRISMA_MIGRATE_SKIP_SEED;部分替代方式为使用 --no-engine 标志或在 adapter 上配置重试。

CI/CD:若 CI 环境已直接设置环境变量,则无需 dotenv,例如 GitHub Actions 中通过 secrets 设置 DATABASE_URL 后运行 npx prisma migrate deploy。

限制:资料未提供其他平台或版本细节。