首页 > 解决方案 > 用于将 Node.js 应用程序部署到 Heroku 的 Sequelize 凭证

问题描述

我目前正在学习 Node.js(使用 Express、Postgres、Sequelize)并且有一个非常简单的(API)应用程序在本地运行(它正在工作,与 Postman 一起尝试)我现在想部署到 Heroku。我有一些基本的 Heroku 知识,因为我过去使用过 Rails,但我被 Rails 在幕后处理的一些事情困住了。

我已经设置了一个 config.js 文件,其中包含运行时生成的一些生产凭据npx sequelize-cli init,我已经更新了我的本地设置(这有效!)但是我需要添加什么作为我的生产凭据?我需要自己提供吗?还是 Heroku 提供的?

请注意——我已经在 Heroku 上设置了我的管道和应用程序以及 Postgres,但是当尝试通过 cli 连接到我的应用程序时,例如heroku run bash --app name-of-my-app并运行npx sequelize-cli db:create它时会出现以下错误:

Loaded configuration file "config/config.js".
Using environment "production".
TypeError: Cannot read property 'replace' of undefined
    at Object.removeTicks (/app/node_modules/sequelize/lib/utils.js:347:12)
    at Object.quoteIdentifier (/app/node_modules/sequelize/lib/dialects/abstract/query-generator/helpers/quote.js:50:35)
    at PostgresQueryGenerator.quoteIdentifier (/app/node_modules/sequelize/lib/dialects/abstract/query-generator.js:891:24)
    at getCreateDatabaseQuery (/app/node_modules/sequelize-cli/lib/commands/database.js:77:50)
    at Object.exports.handler (/app/node_modules/sequelize-cli/lib/commands/database.js:45:17)

进一步说明:

标签: node.jspostgresqlherokudeploymentsequelize.js

解决方案


把它放在这里,以防其他人遇到类似的麻烦:

刚刚想通了,它实际上非常简单,但是我对config.js运行时提供的默认设置有点困惑npx sequelize-cli init

这是我的生产设置的样子:

  production: {
    use_env_variable: 'DATABASE_URL',
    dialect: 'postgres'
  }

推荐阅读