Я создал таблицу, используя sequelize-cli, однако я забыл добавить столбец: title.
Поэтому я сгенерировал новую миграцию:
$ sequelize migration:create --name update-notes
И поместил эти коды внутри миграцииfile:
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.addColumn(
'Notes',
'title',
Sequelize.STRING
);
},
down: (queryInterface, Sequelize) => {
return queryInterface.removeColumn(
'Notes',
'title'
);
}
};
После запуска миграции и проверки схемы таблицы из БД, она работает:
$ 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;
};
Чего мне не хватает?Как мне применить мои обновления к файлу модели?
А что, если предыдущие данные в таблице не совместимы с новой схемой таблицы?Это просто не удалось перенести миграцию, и разработчик решил проблему вручную?