node.js - 更改模型后如何创建 Sequelize cli db 迁移

标签 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

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

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

最佳答案

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

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

关于node.js - 更改模型后如何创建 Sequelize cli db 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31567187/

相关文章:

javascript - 如何使用 JSZip 使用 Node.js 中的缓冲区内容生成 zip 文件?

node.js - sails.js - 我如何在模型 Hook beforeCreate 中访问 session 数据

sequelize.js - Sequelize 如何更新 qty = qty + x

java - JPA 和 Hibernate 中的 persist() 和 merge() 有什么区别?

java - 自定义 hibernate 实体持久性

node.js - Sequelize 4.42.0 : Setting an instance method returns "not a function" error

javascript - 如何选择从开始日期到结束日期开始的sequelize数据(意思是不包括结束日期)

javascript - 执行配置文件 app.json/process.yml 时找不到 Pm2 脚本

node.js - 在 Mongo GridFS 或 Amazon S3 中存储图像哪个更快?

javascript - express.js "next()"参数的确切性质