我有一个通过npm(db-migrate
)安装的命令。我想从命令行运行它作为自动化数据库迁移的一部分。脚本的配置文件可以引用环境变量。我已经将数据库凭据设置为另一个文件中的环境变量。因此,我告诉迁移配置不要使用两次,而要设置两次。问题是,如何在运行迁移脚本之前从文件中获取环境变量?另外,如何直接从npm bin
运行迁移脚本?
我找到了解决这个问题的好方法,所以我发布问题和答案至少是为了我将来的自己。
答案 0 :(得分:2)
这可以使用一些工具来完成:
PORT=3000 node index.js
但是我们想从文件中读取变量。可以使用export
和xargs
来完成:
export $(cat app.env | xargs)
bin
运行脚本。可以使用bin
获取npm bin
文件夹的路径。因此,我们只需要在运行命令之前将其添加到路径中即可:PATH=$(npm bin):$PATH
export $(cat app.env | xargs) && PATH=$(npm bin):$PATH db-migrate up
这将读取环境变量,进行设置,然后将npm bin
添加到路径,然后运行迁移脚本。
顺便说一下,app.env
的内容看起来像这样:
PORT=3000
DB_NAME=dev
DB_USER=dev_user
DB_PASS=dev_pass