You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
srap/src/initialize.js

34 lines
621 B
JavaScript

"use strict";
const Promise = require("bluebird");
const path = require("path");
const knex = require("knex");
const { knexSnakeCaseMappers } = require("objection");
const models = require("./models");
let migrationsFolder = path.join(__dirname, "../migrations");
module.exports = function initialize({ knexfile }) {
let knexInstance = knex({
... knexfile,
... knexSnakeCaseMappers()
});
let state = {
knex: knexInstance
};
return Promise.try(() => {
return knexInstance.migrate.latest({
directory: migrationsFolder
});
}).then(() => {
return {
... state,
db: models(state)
};
});
};