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, И проблема решена.

Другие вопросы по тегам