我正在尝试使用扩展名为./node_modules/.bin/sequelize db:migrate
的ebextension将我的应用程序的新版本部署到ElasticBeanstalk,以便运行我的sequelize
迁移来更新数据库。但是,我在部署时收到错误消息,指示sequelize
无法找到.env
文件。我已经阅读了其他相关问题,试图运行npm
时会发生这种情况,但是我的情况是按照node_module
文档中的说明指定对sequelize-cli
的调用。
是不是模块正在搜索.env
文件,而不是AWS在其中存储ENV变量?
以下是错误日志:
fra-EmbeddedPostBuild/postbuild_3_synotate/Command 1$
^[[4mSequelize CLI [Node: 6.14.3, CLI: 4.0.0, ORM: 3.33.0]^[[24m
{ Error: ENOENT: no such file or directory, open '.env'
at Error (native)
at Object.fs.openSync (fs.js:642:18)
at Object.fs.readFileSync (fs.js:510:33)
at Object.config (/tmp/deployment/application/node_modules/dotenv/lib/main.js:30:37)
at Object.<anonymous> (/tmp/deployment/application/config/config.js:2:34)
at Module._compile (module.js:577:32)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
at /tmp/deployment/application/node_modules/sequelize-cli/lib/helpers/config-helper.js:47:20
at tryCatcher (/tmp/deployment/application/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/tmp/deployment/application/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/tmp/deployment/application/node_modules/bluebird/js/release/promise.js:569:18) errno: -2, code: 'ENOENT', syscall: 'open', path: '.env' }
Loaded configuration file "config/config.js".
Using environment "staging".
^[[31mERROR:^[[39m connect ECONNREFUSED 111.0.0.1:5432
(ElasticBeanstalk::ExternalInvocationError)
这是我的.ebextension
配置文件:
container_commands:
10_db_migrate:
command: ./node_modules/.bin/sequelize db:migrate
leader_only: true