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.
34 lines
621 B
JavaScript
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)
|
|
};
|
|
});
|
|
};
|
|
|