node-pg-migration 不读取 .env 文件,尽管安装了 dotenv

问题描述 投票:0回答:3

我正在使用node-pg-migrate,并且希望数据库名称、密码和模式来自.env 文件而不是配置文件。 .env 文件没有像使用默认数据库一样被使用。 你能让我知道如何获取要使用的 .env 文件吗?

该应用程序使用 TypeScript。

NPM 脚本块

"scripts": {
    "migrate": "ts-node node_modules/.bin/node-pg-migrate  -j ts -m src/migrations",
    "start:build": "tsc -w",
    "start:run": "nodemon -r dotenv/config build/index.js",
    "start": "concurrently npm:start:*"
}

.env 存储在项目的根目录中并使用设置:

POSTGRES_PORT=5432
POSTGRES_DB='testdb'
POSTGRES_PASSWORD='somePass'
POSTGRES_USER='anon'
POSTGRES_SCHEMA='sch'

从 default.json 读取时,设置值工作正常

使用的版本: “打字稿”:“^4.2.4” “节点-pg-迁移”:“^5.9.0” “dotenv”:“^8.2.0” 节点 14.16.0

非常感谢

node.js environment-variables node-pg-migrate
3个回答
2
投票

配置数据必须保存在DATABASE_URL或者您可以更改标准源:

摘自文档

您可以通过将参数传递给 node-pg-migrate 来调整默认值: database-url-var (d) - 带有数据库 url 字符串的环境变量名称(默认为 DATABASE_URL


2
投票

.env 文件的内容只是设置环境变量。所以它的内容应该是这样的

DATABASE_URL=postgres://anon:somePass@localhost:5432/testdb

0
投票

第 1 步: 以这种方式将数据库凭据添加到您的 .env 文件中:

DATABASE_URL=postgres://your_db_user:your_pass@localhost:5432/your_db_name

第 2 步: 将 .env 文件添加到 .gitignore 文件中。

这个 .env 文件不应该添加到 git (因此它必须添加到你的 .gitignore 文件中),因此 .env 文件不会被推送到 Github。此类信息(数据库凭据)必须保留在本地计算机和/或生产部署平台(例如 Heroku)中。不在Github上!!请记住根据每种情况相应地调整 .env 文件内容。

.env

第 3 步: 在代码中使用 dotenv 加载环境变量

在应用程序的开头(通常在 index.js、app.js 或其他入口点中),通过调用 dotenv.config() 加载 .env 文件:

require('dotenv').config();  // Loads the .env file
© www.soinside.com 2019 - 2024. All rights reserved.