65 lines
2.0 KiB
JavaScript
65 lines
2.0 KiB
JavaScript
// Init function export mongodb
|
|
const shell = require('shelljs');
|
|
const Constants = require('./constants');
|
|
|
|
function export_database() {
|
|
console.log('export_database ....');
|
|
shell.mkdir('-p', [Constants.BACKUP_PATH]);
|
|
const cmd = `mongodump --uri='${process.env.APPSMITH_MONGODB_URI}' --archive='${Constants.BACKUP_PATH}/${Constants.DUMP_FILE_NAME}' --gzip`;
|
|
shell.exec(cmd);
|
|
console.log('export_database done');
|
|
}
|
|
|
|
function stop_application() {
|
|
console.log('stop_application ....');
|
|
shell.exec('/usr/bin/supervisorctl stop backend rts');
|
|
console.log('stop_application done');
|
|
}
|
|
|
|
function start_application() {
|
|
console.log('start_application ....');
|
|
shell.exec('/usr/bin/supervisorctl start backend rts');
|
|
console.log('start_application done');
|
|
}
|
|
|
|
// Main application workflow
|
|
function main() {
|
|
let errorCode = 0;
|
|
try {
|
|
check_supervisord_status_cmd = '/usr/bin/supervisorctl >/dev/null 2>&1 ';
|
|
shell.exec(check_supervisord_status_cmd, function (code) {
|
|
if (code > 0) {
|
|
shell.echo('application is not running, starting supervisord');
|
|
shell.exec('/usr/bin/supervisord');
|
|
}
|
|
});
|
|
|
|
shell.echo('stop backend & rts application before export database');
|
|
stop_application();
|
|
export_database();
|
|
shell.echo('start backend & rts application after export database');
|
|
shell.echo();
|
|
shell.echo('\033[0;33m++++++++++++++++++++ NOTE ++++++++++++++++++++');
|
|
shell.echo();
|
|
shell.echo(
|
|
'Please remember to also copy APPSMITH_ENCRYPTION_SALT and APPSMITH_ENCRYPTION_PASSWORD variables from the docker.env file to the target instance where you intend to import this database dump.',
|
|
);
|
|
shell.echo();
|
|
shell.echo('++++++++++++++++++++++++++++++++++++++++++++++\033[0m');
|
|
shell.echo();
|
|
} catch (err) {
|
|
shell.echo(err);
|
|
errorCode = 1;
|
|
} finally {
|
|
start_application();
|
|
process.exit(errorCode);
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
runExportDatabase: main,
|
|
exportDatabase: export_database,
|
|
stopApplication: stop_application,
|
|
startApplication: start_application,
|
|
};
|