sequelize.sync({ force: true }) не работает несколько раз
Я использую Gulp задачи для миграции базы данных. Для тестирования я использую другую базу данных. поэтому мне нужна точно такая же база данных. я пытаюсь сделать с sequelize.sync({ force: true }), но это не работает.
У меня есть все мои модели в портале-модели. вот код:
const models = require('portal-models');
gulp.task('migrate', ['create-database'], (done) => {
models.sequelize.query('SET FOREIGN_KEY_CHECKS = 0')
.then(() => models.sequelize.sync({ force: true, alter: true }))
....
....
....
)
С Force: true это должно работать, но для меня я получаю ошибку, как mydatbaseName.tablename не существует.
Я создал новую тестовую базу данных. я не хочу вручную создавать все в базе тестовых данных, поэтому я использую миграцию, но я gusse sync не работает должным образом.
Кто-нибудь может сказать, что именно я должен следовать?
Заранее спасибо.
1 ответ
Наконец я нашел ошибку.models.sequelize.sync({ force: true })
он работал правильно, но я не смог увидеть журналы в командной строке, поэтому я подумал, что синхронизация не работает должным образом. я добавил models.sequelize.sync({ force: true, logging: console.log }))
Благодаря этому я смог увидеть журнал, он сбрасывал все таблицы и снова создавал. Проблема была не с sequelize.sync() . Проблема была с моим именем базы данных, оно ссылалось только на базу данных разработки, и я выполнял запросы в testDatabase.
перед запуском теста я просто изменил свою базу данных какexport MYSQL_DATABASENAME = test_database_name
, И проблема решена.