【发布时间】:2014-05-03 05:44:20
【问题描述】:
谁能给我一些完整的nodejs迁移续集示例,因为实际文档本身并没有给出如何完成的完整示例。
或者可以给出一些其他可以使用的模块的完整示例以及如何在heroku中使用的最佳实践?
谢谢
【问题讨论】:
标签: node.js heroku migration sequelize.js
谁能给我一些完整的nodejs迁移续集示例,因为实际文档本身并没有给出如何完成的完整示例。
或者可以给出一些其他可以使用的模块的完整示例以及如何在heroku中使用的最佳实践?
谢谢
【问题讨论】:
标签: node.js heroku migration sequelize.js
当你通过运行在本地初始化 sequelize 时:
sequelize -i
会创建一个迁移文件夹、配置文件夹和配置文件夹内的 config.json。该 json 文件是您设置应用程序环境的位置。这是一个 config.json 文件的示例。
{
"development": {
"username": "postgres",
"password": "password",
"database": "dbname",
"host": "100.0.0.0",
"dialect":"postgres",
"protocol":"postgres",
"port":"xxxx"
},
"staging": {
"username": "dbusername",
"password": "dbpassword",
"database": "db",
"host": "host",
"dialect":"postgres",
"protocol":"postgres",
"port":"xxxx"
},
"production": {
"username": "dbusername",
"password": "dbpassword",
"database": "db",
"host": "dbhost",
"dialect":"postgres",
"protocol":"postgres",
"port":"xxxx"
}
}
生产对象是您设置 heroku 生产应用程序数据库变量的地方。您可以通过在命令行中运行以下命令来访问它们:
heroku config --app production-app-name
所有变量都将在您设置的 database_url 配置变量中。
当您准备好运行迁移时,您在命令行中运行的只是:
heroku run sequelize db:migrate --env production -m --app production-app-name.
--env 将是您要迁移的 config.json 中的任何数据库对象。
使用这个方便的续集功能,而不是在文件中嵌入密码:
"production": {
"use_env_variable": "DATABASE_URL"
}
【讨论】:
Since March 2019, Heroku 在每次部署后运行构建 npm 脚本。改进上面令人惊叹的评论,您可以向它添加 sequelize 迁移(位于 package.json 文件中,位于根目录中):
...
"scripts": {
...
"build": "sequelize db:migrate --env production && <other stuff to do before run the app>"
}
...
【讨论】:
您可以使用 Procfile 并将其放在顶部。
release: npx sequelize-cli db:migrate
然后您将需要一个 .sequelizerc 文件来定义您的迁移位置。
对于配置,您可以将其用于 ssl。
production: {
use_env_variable: 'DATABASE_URL',
dialect: 'postgres',
protocol: 'postgres',
ssl: true,
dialectOptions: {
ssl: {
require: true,
rejectUnauthorized: false,
},
},
}
【讨论】: