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

推送至GitHub前,如何在.env文件中正确存储数据库凭据

用.env管理Knex开发环境数据库凭据并安全提交到GitHub
  • 安装dotenv包
    执行命令安装仅在开发环境使用的dotenv:

    npm install dotenv --save-dev
    # 用yarn的话执行
    yarn add dotenv --dev
    
  • 创建并配置.env文件
    在项目根目录新建.env文件,填入你的开发环境数据库信息:

    DEV_DB_NAME=你的开发数据库名称
    DEV_DB_USER=你的数据库用户名
    DEV_DB_PASSWORD=你的数据库密码
    DEV_DB_HOST=localhost
    DEV_DB_PORT=5432
    
  • 配置.gitignore
    打开项目根目录的.gitignore(没有就新建),添加一行:

    .env
    

    注意:不要把knexfile.js加入.gitignore,生产环境的配置逻辑需要随代码提交。

  • 修改knexfile.js读取.env变量
    在knexfile.js最顶部加入dotenv加载代码,然后替换开发环境的硬编码配置:

    require('dotenv').config();
    
    module.exports = {
      development: {
        client: 'postgresql',
        connection: {
          database: process.env.DEV_DB_NAME,
          user: process.env.DEV_DB_USER,
          password: process.env.DEV_DB_PASSWORD,
          host: process.env.DEV_DB_HOST || 'localhost',
          port: process.env.DEV_DB_PORT || 5432
        },
        pool: {
          min: 2,
          max: 10
        },
        migrations: {
          tableName: 'knex_migrations'
        }
      },
      production: {
        client: 'postgresql',
        connection: process.env.DATABASE_URL,
        pool: {
          min: 2,
          max: 10
        },
        migrations: {
          tableName: 'knex_migrations'
        }
      }
    };
    

    这里给host和port加了默认值,避免.env未配置时出错。

  • 测试配置有效性
    运行开发环境的Knex命令验证连接,比如执行迁移:

    knex migrate:latest --env development
    

    如果能正常执行,说明配置没问题。

  • 提交代码到GitHub
    确认.gitignore已包含.env后,执行提交命令:

    git add .
    git commit -m "切换为dotenv管理开发环境数据库凭据"
    git push
    

    这样knexfile.js会被正常提交,但包含敏感信息的.env不会被推送到仓库,同时生产环境的DATABASE_URL配置不受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:36:29