【发布时间】:2020-01-16 01:48:44
【问题描述】:
我有一个用 nodejs 编写的电子商务应用程序。我最近将我的应用程序部署到 heroku..这里是配置:
开发模式:
database: mysql
生产模式
database: postgresql add-on
部署成功完成,我运行了 heroku run bash 命令,然后运行了 sequelize -m 命令。之后我完成了 db:migrate 并且所有迁移都成功完成了。但是当我尝试搜索路由时,我在许多路线上出现错误。但每条路线都有相似之处。
例如:这是我在创建用户路由时得到的响应。
"name": "SequelizeDatabaseError",
"parent": {
"name": "error",
"length": 105,
"severity": "ERROR",
"code": "42703",
"position": "47",
"file": "parse_relation.c",
"line": "3294",
"routine": "errorMissingColumn",
"sql": "SELECT \"id\", \"username\", \"email\", \"password\", \"image\", \"createdAt\", \"updatedAt\" FROM \"Users\" AS \"User\" WHERE \"User\".\"email\" = 'developerstackbase@gmail.com' LIMIT 1;"
},
"original": {
"name": "error",
"length": 105,
"severity": "ERROR",
"code": "42703",
"position": "47",
"file": "parse_relation.c",
"line": "3294",
"routine": "errorMissingColumn",
"sql": "SELECT \"id\", \"username\", \"email\", \"password\", \"image\", \"createdAt\", \"updatedAt\" FROM \"Users\" AS \"User\" WHERE \"User\".\"email\" = 'developerstackbase@gmail.com' LIMIT 1;"
},
"sql": "SELECT \"id\", \"username\", \"email\", \"password\", \"image\", \"createdAt\", \"updatedAt\" FROM \"Users\" AS \"User\" WHERE \"User\".\"email\" = 'developerstackbase@gmail.com' LIMIT 1;"
}
【问题讨论】:
-
为什么在本地使用 MySQL 而在生产中使用 PostgreSQL?这些产品不是相互替代的。我强烈建议在任何地方都使用相同的 RDBMS。
-
另外,这是否适用于本地数据库的全新副本,从零开始运行所有迁移?您的迁移可能与您的数据模型不匹配。
标签: mysql node.js postgresql heroku