Files
robot-shop/CF/mysql-init/init-db.js

44 lines
1.3 KiB
JavaScript
Raw Permalink Normal View History

2019-08-24 06:10:08 +02:00
/*jshint esversion: 6 */
(function () {
'use strict';
2019-09-08 14:11:56 +02:00
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);
2019-08-24 06:10:08 +02:00
}
2019-09-08 14:11:56 +02:00
const sqlFile = initArgv[0];
const bindingName = initArgv[1];
2019-08-24 06:10:08 +02:00
2019-09-08 14:11:56 +02:00
const appEnv = require('cfenv').getAppEnv();
2019-08-24 06:10:08 +02:00
2019-09-08 14:11:56 +02:00
if (appEnv.isLocal) {
throw new Error('Not running in Cloud Foundry (\'VCAP_SERVICES\' env var not found)');
2019-08-24 06:10:08 +02:00
}
2019-09-08 14:11:56 +02:00
var connectionDetails = appEnv.getServiceCreds(bindingName);
2019-08-24 06:10:08 +02:00
if (!connectionDetails) {
2019-09-08 14:11:56 +02:00
throw new Error(`No service binding with name '${bindingName}' found`);
2019-08-24 06:10:08 +02:00
}
2019-09-08 14:11:56 +02:00
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!`);
}
2019-08-24 06:10:08 +02:00
}());