node.js - 用于将 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 14.0.0 并续集
6.3.0
- 我已经添加
"engines": { "node": "14.x" }
到我的package.json
- 我没有 procfile,因为 Heroku 声明不再需要它
- 我的应用入口点是
app.js
解决方案
把它放在这里,以防其他人遇到类似的麻烦:
刚刚想通了,它实际上非常简单,但是我对config.js
运行时提供的默认设置有点困惑npx sequelize-cli init
。
这是我的生产设置的样子:
production: {
use_env_variable: 'DATABASE_URL',
dialect: 'postgres'
}
推荐阅读
- mysql - 什么被视为临时表中的会话
- sql - 如何将参数列表视为宏中的输入字段?
- sql - 有没有办法在postgres中进行递减余额减法?
- python-3.x - 使用 python 3 进行套接字编程
- javascript - AWS X Ray:在 for 循环中,系统不会根据迭代记录每个跟踪 ID 的跟踪。如何在这里使用 AWS Async 功能?
- javascript - time.minutes 和 time.seconds 未定义
- bash - npm run build 命令后 shell 脚本不继续
- angular - 每个分支的 Azure Devops azure-pipelines.yml
- azure - 将应用程序部署到 Web 应用程序后如何更改应用程序服务的主页
- selenium - 如何获取 Web 元素值并将其与 Robot Framework 中的数字进行比较?