core: fix --dbOnly option for dump

pull/564/head
undefined 1 year ago
parent 41a1a7ae66
commit cc9ed16f6c
No known key found for this signature in database

@ -39,7 +39,7 @@ export function register(cli: CAC) {
child.spawn('mongo', [url], { stdio: 'inherit' }); child.spawn('mongo', [url], { stdio: 'inherit' });
} }
}); });
cli.command('backup').action(() => { cli.command('backup').option('--dbOnly', 'Only dump database', { default: false }).action(() => {
const url = getUrl(); const url = getUrl();
exec('mongodump', [url, `--out=${dir}/dump`], { stdio: 'inherit' }); exec('mongodump', [url, `--out=${dir}/dump`], { stdio: 'inherit' });
const target = `${process.cwd()}/backup-${new Date().toISOString().replace(':', '-').split(':')[0]}.zip`; const target = `${process.cwd()}/backup-${new Date().toISOString().replace(':', '-').split(':')[0]}.zip`;
@ -51,12 +51,13 @@ export function register(cli: CAC) {
const stat = fs.statSync(target); const stat = fs.statSync(target);
logger.success(`Database backup saved at ${target} , size: ${size(stat.size)}`); logger.success(`Database backup saved at ${target} , size: ${size(stat.size)}`);
}); });
cli.command('restore <filename>').action(async (filename) => { cli.command('restore <filename>').option('-y', 'Assume yes', { default: false }).action(async (filename) => {
const url = getUrl(); const url = getUrl();
if (!fs.existsSync(filename)) { if (!fs.existsSync(filename)) {
logger.error('Cannot find file'); logger.error('Cannot find file');
return; return;
} }
if (!argv.options.y) {
const rl = readline.createInterface(process.stdin, process.stdout); const rl = readline.createInterface(process.stdin, process.stdout);
const answer = await rl.question(`Overwrite current database with backup file ${filename}? [y/N]`); const answer = await rl.question(`Overwrite current database with backup file ${filename}? [y/N]`);
rl.close(); rl.close();
@ -64,6 +65,7 @@ export function register(cli: CAC) {
logger.warn('Abort.'); logger.warn('Abort.');
return; return;
} }
}
exec('unzip', [filename, '-d', dir], { stdio: 'inherit' }); exec('unzip', [filename, '-d', dir], { stdio: 'inherit' });
exec('mongorestore', [`--uri=${url}`, `--dir=${dir}/dump/hydro`, '--drop'], { stdio: 'inherit' }); exec('mongorestore', [`--uri=${url}`, `--dir=${dir}/dump/hydro`, '--drop'], { stdio: 'inherit' });
if (fs.existsSync(`${dir}/file`)) { if (fs.existsSync(`${dir}/file`)) {

Loading…
Cancel
Save