You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bun.js中Drizzle-Kit无法读取.env.test等环境文件的问题

解决Drizzle Kit在Bun.js下读取指定.env文件的问题

方法1:命令行指定.env文件

Bun支持通过--env-file参数直接指定要加载的环境变量文件,执行Drizzle命令时加上该参数即可:

# 测试环境生成迁移文件
bun --env-file=.env.test run drizzle-kit generate

# 测试环境推送schema变更
bun --env-file=.env.test run drizzle-kit push

# 测试环境执行迁移
bun --env-file=.env.test run drizzle-kit migrate

为了方便日常使用,可以在package.json中配置对应脚本:

{
  "scripts": {
    "drizzle:gen:test": "bun --env-file=.env.test run drizzle-kit generate",
    "drizzle:push:test": "bun --env-file=.env.test run drizzle-kit push",
    "drizzle:migrate:test": "bun --env-file=.env.test run drizzle-kit migrate"
  }
}

之后直接运行bun run drizzle:gen:test即可调用测试环境的配置。

方法2:通过NODE_ENV自动加载对应环境文件

Bun会根据NODE_ENV的值自动加载匹配的环境文件,加载优先级为:.env < .env.local < .env.[NODE_ENV] < .env.[NODE_ENV].local,后续文件的变量会覆盖前面的。

如果希望测试环境使用.env.test的配置,只需在执行命令前设置NODE_ENV=test:

NODE_ENV=test bun run drizzle-kit generate

注意:这种方式下Bun仍会加载.env文件,若.env中存在DATABASE_URL,会被.env.test中的值覆盖。如果需要完全隔离环境,优先使用方法1。

额外说明

你的drizzle.config.ts无需修改,只要环境变量正确加载,process.env.DATABASE_URL就能获取到对应环境的值。

内容的提问来源于stack exchange,提问作者Anas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:35:01