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

Posted

技术标签:

【中文标题】更改模型后如何创建 Sequelize cli db 迁移【英文标题】:How to create a Sequelize cli db migration after changes to the model 【发布时间】: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 我看过下面的 *** 问题:How to auto generate migrations with Sequelize CLI from Sequelize models?

【问题讨论】:

【参考方案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>

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

【讨论】:

以上是关于更改模型后如何创建 Sequelize cli db 迁移的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs / PostgreSQL sequelize - 如何更新/更改数据库中的模型?

使用sequelize时如何自动创建迁移文件?

GraphQl,Sequelize-CLi,模型捆绑器 - sequelize.import 不是函数

如何在 Sequelize CLI 中添加、删除新列

如何在使用 Sequelize 更改列或添加新列时更新迁移文件

nodejs: express sequelize-cli