Files
robot-shop/CF/mysql-init/init-db.js
2019-09-08 14:32:12 +02:00

44 lines
1.3 KiB
JavaScript

/*jshint esversion: 6 */
(function () {
'use strict';
const fs = require('fs');
const initArgv = process.argv.slice(2);
if (initArgv.length != 2) {
console.error(`Usage: ${process.argv[0]} ${process.argv[1]} <sql-file> <mysql-service-binding-name>\n\nProgram arguments: ${process.argv.join(' ')}`);
process.exit(1);
}
const sqlFile = initArgv[0];
const bindingName = initArgv[1];
const appEnv = require('cfenv').getAppEnv();
if (appEnv.isLocal) {
throw new Error('Not running in Cloud Foundry (\'VCAP_SERVICES\' env var not found)');
}
var connectionDetails = appEnv.getServiceCreds(bindingName);
if (!connectionDetails) {
throw new Error(`No service binding with name '${bindingName}' found`);
}
if (fs.existsSync(sqlFile)) {
console.log('Starting database import');
require('mysql-import').config({
host: connectionDetails.hostname,
user: connectionDetails.username,
password: connectionDetails.password,
database: connectionDetails.name,
onerror: err=>console.log(err.message)
}).import(sqlFile)
.then(() => console.log('Database imported'));
} else {
throw new Error(`File '${sqlFile}' not found!`);
}
}());