如何使用环境变量在 ElasticBeanstalk 上运行sequelize db:migrate?
运行sequelize migrate 失败,因为找不到.env
文件。
{ Error: ENOENT: no such file or directory, open '.env'
我的 master.config 看起来像:
container_commands:
00_node_binary:
command: "ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/node /bin/node"
00_npm_binary:
command: "ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/npm /bin/npm"
01_migrations:
command: npm run migrate
leader_only: true
我的 package.json 包含
"migrate": "node_modules/sequelize-cli/bin/sequelize db:migrate"
最佳答案
编辑:
我刚刚发现环境变量发生了什么事。尝试在不使用 npm
的情况下运行迁移脚本。它会是这样的:
./node_modules/.bin/sequelize db:migrate
这样,您将获得您期望的所有环境变量。
旧答案:
您确定您的 .env
文件已提交到您的 git 存储库吗?一般来说,将 .env
提交到 git 并在生产中使用它并不是一个好主意。您应该在 Elastic Beanstalk 仪表板的软件配置
下设置环境变量。
您还可以使用 eb
命令行实用程序 documented here .
关于node.js - 如何运行sequelize db :migrate on Elastic Beanstalk EB with env vars? 如何访问容器命令中的.env vars?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41928297/