UNPKG

@sugarcube/plugin-sql

Version:

Import and export Sugarcube data and queries from and to SQL databases.

55 lines (44 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _fp = require("lodash/fp"); var _promise = _interopRequireDefault(require("marv/api/promise")); var _marvPgDriver = _interopRequireDefault(require("marv-pg-driver")); var _marvBetterSqlite3Driver = _interopRequireDefault(require("@open-fidias/marv-better-sqlite3-driver")); var _path = _interopRequireDefault(require("path")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const plugin = async (envelope, { log, cfg }) => { const engine = (0, _fp.get)("sql.engine", cfg); const database = (0, _fp.get)("sql.database", cfg); const host = (0, _fp.get)("sql.host", cfg); const port = (0, _fp.get)("sql.port", cfg); const user = (0, _fp.get)("sql.user", cfg); const password = (0, _fp.get)("sql.password", cfg); const directory = _path.default.join(__dirname, `../../migrations/${engine}/`); const driver = engine === "postgres" ? (0, _marvPgDriver.default)({ connection: { host, port, database, user, password } }) : (0, _marvBetterSqlite3Driver.default)({ connection: { path: database === "sugarcube" ? `${database}.db` : database } }); log.info(`Scanning ${directory} for migrations`); const migrations = await _promise.default.scan(directory); await _promise.default.migrate(migrations, driver); return envelope; }; plugin.desc = "Migrate the SQL schema."; plugin.argv = {}; var _default = plugin; exports.default = _default;