我正在使用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
非常感谢
配置数据必须保存在DATABASE_URL或者您可以更改标准源:
摘自文档:
您可以通过将参数传递给 node-pg-migrate 来调整默认值: database-url-var (d) - 带有数据库 url 字符串的环境变量名称(默认为 DATABASE_URL)
.env 文件的内容只是设置环境变量。所以它的内容应该是这样的
DATABASE_URL=postgres://anon:somePass@localhost:5432/testdb
第 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