【问题标题】:SequelizeDatabaseError after deplying nodejs app to heroku将nodejs应用程序部署到heroku后发生SequelizeDatabaseError
【发布时间】: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


【解决方案1】:

能否请您在两个环境中使用相同的数据库,如果它在您的本地工作,请更新它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2017-11-06
    • 2020-08-06
    • 2018-08-21
    • 2014-01-13
    • 2021-06-24
    • 1970-01-01
    相关资源
    最近更新 更多