如何在更改模型后创建Sequelize cli db迁移

iva*_*van 12 orm node.js sequelize.js

我从sequelize开始,并在线跟踪他们的视频教程.跑完之后

node_modules/.bin/sequelize model:create --name User --attributes username:string

node_modules/.bin/sequelize model:create --name Task --attributes title:string
Run Code Online (Sandbox Code Playgroud)

它为create user和create task创建了迁移文件.然后我必须将关联添加到每个模型,如下所示:

// user.js
classMethods: {
  associate: function(models) {
    User.hasMany(models.Task);
  }
}

// task.js
classMethods: {
  associate: function(models) {
    Task.belongsTo(models.User);
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,已创建用于为用户和任务创建表的迁移文件.我是否必须手动更新它们以添加关系?"migration:create"命令用于创建迁移框架文件.我是否手动填写框架文件,或者除了模型创建之外还有自动创建完整迁移文件的方法吗?

PS我已经看到了以下stackoverflow问题: 如何使用Sequelize模型中的Sequelize CLI自动生成迁移?

Joh*_*ton 8

您可以从空迁移文件创建单独的迁移。当我需要向表中添加一些额外的列时,我就这样做了。

sequelize migration:create --name users
Run Code Online (Sandbox Code Playgroud)

然后在我的新迁移文件中。

module.exports = {
  up: function (queryInterface, Sequelize) {
    queryInterface.addColumn(
      'Users',
      'url',
      Sequelize.STRING
    );
  },

  down: function (queryInterface, Sequelize) {
    queryInterface.removeColumn(
      'Users',
      'url',
      Sequelize.STRING
    );
  }
};
Run Code Online (Sandbox Code Playgroud)

然后只需运行迁移。

sequelize db:migrate
Run Code Online (Sandbox Code Playgroud)