@sugarcube/plugin-sql
Version:
Import and export Sugarcube data and queries from and to SQL databases.
55 lines (44 loc) • 1.58 kB
JavaScript
;
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;