sql >> Database >  >> RDS >> PostgreSQL

Mocha-testen van PostgreSQL met Knex geeft me een MigrationLocked-fout

Voor iedereen die hierover struikelt, het probleem kwam eigenlijk van db.js , met name de laatste regel:

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]);

Dit is natuurlijk asynchroon en de tests importeerden dit bestand voordat ze probeerden hun eigen knex-functies uit te voeren, waardoor de vergrendeling werd veroorzaakt. Ik heb dit omzeild door een clausule toe te voegen om dit tijdens het testen te blokkeren:

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

U kunt vervolgens een testomgeving maken door process.env.NODE_ENV='test' toe te voegen aan elk specificatiebestand, of door de npm env-test te installeren module.



  1. Hoe kan ik een tabel maken in MySQL genaamd order?

  2. Een groot probleem:SQL Server 2016 Service Pack 1

  3. Lijst van alle databases van een gekoppelde server in SQL Server (T-SQL-voorbeelden)

  4. Hoe krijg ik SQL-tekst van Postgres-gebeurtenistrigger