繁体   English   中英

Sequelize db:migrate不会更新模型

[英]Sequelize db:migrate doesn't update model

我使用sequelize-cli制作了一张桌子,但是我忘了添加一个列:标题。

所以我生成了新的迁移:

$ sequelize migration:create --name update-notes

并将这些代码放在迁移文件中:

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {

    return queryInterface.addColumn(
      'Notes',
      'title',
      Sequelize.STRING
    );
  },

  down: (queryInterface, Sequelize) => {
   return queryInterface.removeColumn(
     'Notes',
     'title'
   );
  }
};

运行迁移并从DB检查表模式后,它可以工作:

$ sequelize db:migrate

但是模型还没有我新添加的列:

'use strict';
// models/notes.js
module.exports = (sequelize, DataTypes) => {
  const Notes = sequelize.define('Notes', {
    content: DataTypes.TEXT    // NO 'TITLE' COLUMN
  }, {});
  Notes.associate = function(models) {
    // associations can be defined here
  };
  return Notes;
};

我错过了什么? 我应该如何将我的更新应用于模型文件?

如果表中的先前数据与新表模式不兼容,该怎么办? 迁移和开发人员手动修复问题是否失败?

不幸的是,使用Sequelize迁移,您需要手动更新模型和迁移文件。 创建新的迁移文件不会更新模型文件,反之亦然。 虽然Sequelize CLI提供了一些帮助选项,但您通常可以自己确保正确定义模型文件和迁移文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM