UNPKG

sequelize-mig

Version:

Sequelize migration generator and es6 init tool

46 lines (38 loc) 1.16 kB
const Sequelize = require('sequelize'); /** * Actions summary: * * '<%actions%>' * */ const info = '<%info%>'; const migrationCommands = (transaction) => ['<%commandsUp%>']; const rollbackCommands = (transaction) => ['<%commandsDown%>']; const pos = 0; const useTransaction = true; const execute = (queryInterface, sequelize, _commands) => { let index = pos; const run = (transaction) => { const commands = _commands(transaction); return new Promise((resolve, reject) => { const next = () => { if (index < commands.length) { const command = commands[index]; console.log(`[#${index}] execute: ${command.fn}`); index++; queryInterface[command.fn](...command.params).then(next, reject); } else resolve(); }; next(); }); }; if (useTransaction) return queryInterface.sequelize.transaction(run); return run(null); }; module.exports = { pos, useTransaction, up: (queryInterface, sequelize) => execute(queryInterface, sequelize, migrationCommands), down: (queryInterface, sequelize) => execute(queryInterface, sequelize, rollbackCommands), info, };