in loader/dbloader.js [127:182]
function main() {
// Parse command-line options
var cmdOptions = parse_command_line();
// The User's custom plugin
var plugin = cmdOptions.plugin;
// Generate Loader Job
var job = new LoaderJob();
job.setPlugin(plugin);
if(cmdOptions.control_file) {
job.initializeFromFile(cmdOptions.control_file);
} else {
job.initializeFromSQL(cmdOptions.control_text);
}
// Create a TableMapping for the destination
var mappedConstructors = [ job.destination.createTableMapping() ];
// Add other mappings if defined by the plugin
var extMappings = job.plugin.createMappings();
if(Array.isArray(extMappings)) {
mappedConstructors = mappedConstructors.concat(extMappings);
}
// Set connection properties
var connectionProperties =
new jones.ConnectionProperties(cmdOptions.adapter, cmdOptions.deployment);
if(cmdOptions.connect_string) {
connectionProperties.ndb_connectstring = cmdOptions.connect_string;
}
connectionProperties.database = job.destination.database;
// Connect to the database and start the controller
jones.openSession(connectionProperties, mappedConstructors, function(err, session) {
if(err) throw err; /*JSON.stringify(err); process.exit(1);*/
job.run(session, function onComplete(error, stats) {
session.close().then(function() {
var exitCode = 0; // OK
if(error) {
console.log(error);
exitCode = 1; // Failure
} else {
console.log("Rows processed:", stats.rowsProcessed,
"Skipped", stats.rowsSkipped,
"Loaded:", stats.rowsComplete - stats.rowsError,
"Failed:", stats.rowsError);
if(stats.rowsError > 0) { exitCode = 2; } // Rejected Rows
}
process.exit(exitCode);
});
});
});
}