【问题标题】:How to create a Sequelize cli db migration after changes to the model更改模型后如何创建 Sequelize cli db 迁移
【发布时间】:2015-10-12 13:37:42
【问题描述】:

我从 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

它为创建用户和创建任务创建了迁移文件。然后我必须将关联添加到每个模型,如下所示:

// 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?

【问题讨论】:

    标签: node.js orm sequelize.js


    【解决方案1】:

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

    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
    

    【讨论】:

      【解决方案2】:

      试试这个新的 npm 包

      Sequelize-mig
      

      安装:

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

      然后像这样使用它

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

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

      【讨论】:

        猜你喜欢
        • 2017-01-11
        • 2019-08-10
        • 2016-07-18
        • 2015-03-06
        • 1970-01-01
        • 2016-09-27
        • 2017-12-05
        • 2020-11-09
        • 2017-01-30
        相关资源
        最近更新 更多