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

时间:2015-07-22 15:12:56

标签: node.js orm sequelize.js

我从sequelize开始,并在线跟踪他们的video tutorial。运行后

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

node_modules/.bin/sequelize model:create --name Task --attributes title:string

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

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

// task.js
classMethods: {
  associate: function(models) {
    Task.belongsTo(models.User);
  }
}

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

P.S我看到了以下stackoverflow问题:How to auto generate migrations with Sequelize CLI from Sequelize models?

2 个答案:

答案 0 :(得分:2)

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

sequelize migration:create --name users

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

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

  down: function (queryInterface, Sequelize) {
    queryInterface.removeColumn(
      'Users',
      'url',
      Sequelize.STRING
    );
  }
};

然后只运行迁移。

sequelize db:migrate

答案 1 :(得分:0)

尝试这个新的npm软件包

Sequelize-mig

安装:

npm install sequelize-mig -g / yarn global add sequelize-mig

然后像这样使用它

sequelize-mig migration:make -n <migration name>

,它将为您自动生成所有更新的迁移文件