sql >> データベース >  >> RDS >> PostgreSQL

Knexを使用してPostgreSQLをテストするMochaで、MigrationLockedエラーが発生します

    これに遭遇した人にとって、問題は実際にはdb.jsから来ていました。 、具体的には最後の行:

    const config = require('../knexfile.js');
    const env = process.env.NODE_ENV || 'development';
    const knex = require("knex")(config[env]);
    
    module.exports = knex;
    
    knex.migrate.latest([config]);
    

    もちろん、これは非同期であり、テストは独自のknex関数を実行しようとする前にこのファイルをインポートしていたため、ロックが発生していました。テスト中にこれを実行するのをブロックする句を追加することで、これを回避しました:

    if(process.env.NODE_ENV != 'test') {
       knex.migrate.latest([config])
    }
    

    次に、process.env.NODE_ENV='test'を追加して、テスト環境を作成できます。 各スペックファイルに追加するか、 npm envtest をインストールします。 モジュール。



    1. UNION複数のストアドプロシージャの結果

    2. ユーザーが入力したテキストを効率的にサニタイズします

    3. 配列としてのdbフィールド(GROUP_CONCAT)

    4. MySQLUnionクエリの重複/groupby問題