我尝试在Elastic Beanstalk Node.js示例上运行npx sequelize-cli db:migrate --env production
。数据库设置如下
"production": {
"username": "process.env.RDS_USERNAME",
"password": "process.env.RDS_PASSWORD",
"database": "process.env.RDS_DB_NAME",
"host": "process.env.RDS_HOSTNAME",
"port": "process.env.RDS_PORT",
当我尝试运行该命令时,得到以下输出
npx sequelize-cli db:migrate --env production
Sequelize CLI [Node: 14.18.1, CLI: 6.6.0, ORM: 6.21.0]
Loaded configuration file "settings.json".
Using environment "production".
ERROR: Port should be >= 0 and < 65536. Received NaN.
我在应用程序的根目录中记录了process.env.RDS_PORT
,并得到以下内容
console.log('process.env.RDS_PORT', process.env.RDS_PORT)
process.env.RDS_PORT 5432
我在想我该如何解决这个问题。
**方言:**postgres
**Sequelize CLI版本:**6.6.0
**续作版本:**6.21.0
1条答案
按热度按时间vmdwslir1#
问题是
process.env.*
不能用作字符串文字。我意识到如果我的配置和eval
有process.env
作为其键的一部分,我会解析它们。相反,我可以将
config.js
作为config传递到sequelize-cli
:更新日期:
传入
config.js
在Elastic Beanstalk上也不起作用(可能是因为process.env.*
在运行动态脚本时不可用)。相反,我构造了连接字符串并将其传入,如下所述。