有没有人能够给我一些sequelize迁移的完整示例,因为实际文档本身并没有给出如何完成的完整示例。
或者提供一些其他模块的完整示例,并介绍在heroku中使用的最佳实践?
谢谢
有没有人能够给我一些sequelize迁移的完整示例,因为实际文档本身并没有给出如何完成的完整示例。
或者提供一些其他模块的完整示例,并介绍在heroku中使用的最佳实践?
谢谢
当您通过运行以下命令在本地初始化 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"
}
}
production object 是你设置 Heroku 生产环境应用程序数据库变量的地方。你可以在命令行中运行以下内容来访问它们:
heroku config --app production-app-name
所有的变量将存储在你设置的 database_url 配置变量中。
当你准备运行迁移时,只需在命令行中输入以下命令:
heroku run sequelize db:migrate --env production -m --app production-app-name.
--env 将是您想要迁移的 config.json 中的任何数据库对象。
使用这个方便的 sequelize 能力,而不是将密码嵌入到文件中:
"production": {
"use_env_variable": "DATABASE_URL"
}
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,
},
},
}
...
"scripts": {
...
"build": "sequelize db:migrate --env production && <other stuff to do before run the app>"
}
...
你有自定义的 Sequelize 配置文件吗?要小心了。在我的情况下,我应该执行以下命令:
heroku run npx sequelize-cli db:migrate --config sequelize-config.js --app your-app --env production