sql >> Databasteknik >  >> RDS >> PostgreSQL

Mockatestning av PostgreSQL med Knex ger mig ett MigrationLocked-fel

För alla som stöter på detta kom problemet faktiskt från db.js , särskilt den sista raden:

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

Naturligtvis är detta asynkront, och testerna importerade den här filen innan de försökte köra sina egna knex-funktioner, vilket orsakade låsningen. Jag kom runt detta genom att lägga till en klausul för att blockera att detta körs under testning:

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

Du kan sedan skapa en testmiljö genom att lägga till process.env.NODE_ENV='test' till varje spec-fil, eller genom att installera npm env-testet modul.



  1. Har Oracle NetSuite Advanced PDF Template funktioner för grupp efter och SUM?

  2. Databasdesign - Push Model, eller Fan-out-on-write

  3. Exporterar sql-begäran till csv istället för tabelldata

  4. Oracle PL/SQL:Skapa DML-paket online