sequelize heroku中的迁移

use*_*726 10 migration heroku node.js sequelize.js

有人可以给我一些关于nodejs的sequelize迁移的完整示例,因为实际的文档本身并没有提供完成它的完成示例.

或者可以给出一些可以使用的其他模块的完整示例以及如何在heroku中使用的最佳实践?

谢谢

小智 29

通过运行在本地初始化sequelize时:

sequelize -i
Run Code Online (Sandbox Code Playgroud)

创建config文件夹中的迁移文件夹,配置文件夹和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"
  }
}
Run Code Online (Sandbox Code Playgroud)

生产对象是您设置heroku生产应用程序数据库变量的位置.您可以通过在命令行中运行以下命令来访问它们:

heroku config --app production-app-name
Run Code Online (Sandbox Code Playgroud)

所有变量都将在您设置的database_url config var中.

当您准备好运行迁移时,您在命令行中运行的所有内容都是:

heroku run sequelize db:migrate --env production -m --app production-app-name. 
Run Code Online (Sandbox Code Playgroud)

--env将是您要迁移的config.json中的任何数据库对象.

而不是将密码嵌入文件中,使用这个方便的sequelize功能:

"production": {
  "use_env_variable": "DATABASE_URL"
}
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这意味着您每次部署新迁移的更改时都必须运行该命令。 (2认同)

aar*_*rse 5

您可以使用 Procfile 并将其放在顶部。

release: npx sequelize-cli db:migrate
Run Code Online (Sandbox Code Playgroud)

然后,您将需要一个 .sequelizerc 文件来定义迁移的位置。

对于配置,您可以将其用于 ssl。

production: {
 use_env_variable: 'DATABASE_URL',
 dialect: 'postgres',
 protocol: 'postgres',
 ssl: true,
 dialectOptions: {
   ssl: {
    require: true,
    rejectUnauthorized: false,
   },
 },
}
Run Code Online (Sandbox Code Playgroud)