2

データベースの移行にgulpタスクを使用しています。テスト目的のために、私は別のデータベースを使用しています。だから私はまったく同じデータベースが必要です。私はsequelize.sync({force:true})を使っていますが、動作しません。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 })) 
.... 
.... 
.... 
) 

::真、それは動作するはずですが、mydatbaseName.tablenameではない存在のように私のために私はエラーを取得していますここにコードがあります。

私は新しいテストデータベースを作成しました。私は手動でtestdatabaseのすべてを作成したくないので、私はマイグレーションを使用していますが、私はgusse syncが正しく動作していません。

誰も私が従うべきことを正確に伝えることはできますか?

ありがとうございました。

+0

移行のためにsequelize-cliを使用しています – Shivam

+0

@Shivam:いいえ、私はsequelize-cliを使用していません。私は "sequelize"を使用しています: "^ 3.24.3"。 –

+0

手動でテーブルを作成した場合は、挿入クエリ用に機能しています。しかし、私は手動でテーブルを作成したくありません。 Force:trueはスキーマをマップする必要があります。 –

答えて

1

最後に私は間違いを発見しました。 models.sequelize.sync({ force: true }) 正常に動作していましたが、コマンドプロンプトでログが表示されず、同期が正しく機能していないと思われました。私は追加しました models.sequelize.sync({ force: true, logging: console.log })) これで私はログを見ることができました、それはすべてのテーブルを削除して、再び作成していました。問題はsequelize.sync()ではありませんでした。問題は私のデータベース名で、開発データベースのみを参照していました。私はtestDatabaseでクエリを実行していました。

テストを実行する前に、私はちょうど export MYSQL_DATABASENAME = test_database_nameのように自分のデータベースを変更しました。 問題が解決しました。

+0

あなたの回答があなたの質問を解決した場合は、あなたの答えの横にある緑色の中空のチェックマークをチェックして、それが解決されたことを確認してください。 – NobleUplift

関連する問題