UNPKG

origintrail-node

Version:

OriginTrail Node - Decentralized Knowledge Graph Node Library

40 lines (36 loc) 1.56 kB
import { createRequire } from 'module'; import { Umzug, SequelizeStorage } from 'umzug'; import { Sequelize } from 'sequelize'; import path from 'path'; const require = createRequire(import.meta.url); function createMigrator(sequelize, config, logger) { return new Umzug({ migrations: { glob: [ 'migrations/*.{js,cjs,mjs}', { cwd: path.dirname(import.meta.url.replace('file://', '')) }, ], resolve: (params) => { if (params.path.endsWith('.mjs') || params.path.endsWith('.js')) { const getModule = () => import(`file:///${params.path.replace(/\\/g, '/')}`); return { name: params.name, path: params.path, up: async (upParams) => (await getModule()).up(upParams, logger), down: async (downParams) => (await getModule()).down(downParams, logger), }; } return { name: params.name, path: params.path, // eslint-disable-next-line import/no-dynamic-require ...require(params.path), }; }, }, context: { queryInterface: sequelize.getQueryInterface(), Sequelize }, storage: new SequelizeStorage({ sequelize, tableName: 'sequelize_meta' }), logger: config.logging ? config.logger : { info: () => {} }, }); } export default createMigrator;