Синхронизация Sequelize игнорирует обновление файла миграции
Только начинаю с Sequelize, хотя я явно что-то упускаю. Во время тестирования, казалось бы, любые изменения в файле миграции для моей модели, не влияют на миграцию, вызываемую с помощью sequelize.sync во время тестирования - некоторая помощь будет принята!
Мой тестовый файл:
const expect = require('chai').expect;
const db = require('../db/models')
fs = require('fs')
const app = require('../index')
const request = require('supertest');
const Metric = db.Metric
describe('metric', function() {
beforeEach((done) => {
db.sequelize.sync({ force: true})
.then(() => {
done();
})
});
it('can be saved', async function() {
const result = await Metric.create({ name: '5km Run', unit: 'minutes' });
expect(result.name).to.equal('5km Run');
const all = await Metric.findAll();
expect(all.length).to.be.equal(1);
});
Моя модель:
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('Metrics', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
name: {
type: Sequelize.STRING,
allowNull: true
},
unit: {
type: Sequelize.STRING,
allowNull: false
},
goal: {
type: Sequelize.INTEGER,
allowNull: true
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('Metrics');
}
};
Когда я запускаю тест, терминал постоянно выплевывает:
CREATE TABLE IF NOT EXISTS `Metrics` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL);
Мои добавления столбцов 'unit' и 'goal' полностью игнорируются. Даже если я закомментирую весь файл миграции, он просто запускает ту же самую раннюю версию миграции! Изменения работают нормально при переносе вручную в мою базу данных MySQL разработки. Для тестирования я установил его как в памяти sqlite.
Спасибо!