因此,我对config.json进行了三重检查,以确保所有键都与heroku数据库对齐:
"production": {
"name": "NAME",
"user": "USER",
"port": "5432",
"pass": "PASSWORD",
"host": "HOST",
"dialect": "postgres"
}
我知道这些值有效,因为我可以使用pgcommander访问数据库。然后,我执行以下步骤:
heroku config:set NODE_ENV='production' --app APP_NAME
heroku run node_modules/.bin/sequelize db:migrate
但是在迁移失败后总会出现以下错误:
[00:27:42] Finished 'db:migrate' after 88 ms
Unable to connect to database: Error: SequelizeConnectionError: no PostgreSQL user name specified in startup packet
通过Google搜索错误会返回少量的相关结果。
感谢任何帮助。
我只是通过更改我的config.json
并使用不同顺序的heroku命令来解决此问题:
首先我必须升级heroku数据库:instructions for promoting db然后更改我的
config.json
至以下:
"production": {
"use_env_variable": "DATABASE_URL"
}
然后在终端中运行以下命令:
heroku run bash
现在在heroku bash中:
sequelize db:migrate
我仍然不确定为什么在config.json中指定数据库URL的每个键都会给我一个错误,因为它们应该完全相同。