datastore-backup
Version:
Programatic Backup of Google Cloud Datastore
42 lines • 3.57 kB
JavaScript
/*
* backup.ts
*
* Created by Dr. Maximillian Dornseif 2021-12-21 in datastore-backup 1.0.0
* Copyright (c) 2021 Dr. Maximillian Dornseif
*/
import { Datastore } from '@google-cloud/datastore';
import { ArgumentParser } from 'argparse';
import ora from 'ora';
import { dumpAllKinds } from '../lib/datastore-backup';
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { version } = require('../../package.json');
const parser = new ArgumentParser({
description: 'Backup Datastore.',
epilog: 'Please provide `GOOGLE_APPLICATION_CREDENTIALS` via the Environment!',
add_help: true,
});
parser.add_argument('-v', '--version', { action: 'version', version });
parser.add_argument('projectId', { help: 'Datastore project ID' });
parser.add_argument('bucket', { help: 'GCS bucket to store backup' });
parser.add_argument('-d', '--backupDir', {
default: 'bak',
help: 'prefix/dir within bucket (default: "%(default)s)"',
});
parser.add_argument('-n', '--backupName', {
help: 'name of backup (default: autogenerated)',
});
parser.add_argument('-s', '--namespace', { help: 'datastore namespace' });
const args = parser.parse_args();
async function main() {
const datastore = new Datastore({
projectId: args.projectId,
namespace: args.namespace,
}); //);
//
const spinner = ora().start('🌈 Unicorns! ✨🌈');
await dumpAllKinds(datastore, args.bucket, args.backupName, args.backupDir, spinner);
return '';
}
main().then(console.log).catch(console.error);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jpbi9iYWNrdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBOzs7OztHQUtHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RCw4REFBOEQ7QUFDOUQsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRWxELE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDO0lBQ2hDLFdBQVcsRUFBRSxtQkFBbUI7SUFDaEMsTUFBTSxFQUNKLHNFQUFzRTtJQUN4RSxRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUN2RSxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxDQUFDLENBQUM7QUFDbkUsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDO0FBQ3RFLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtJQUN2QyxPQUFPLEVBQUUsS0FBSztJQUNkLElBQUksRUFBRSxtREFBbUQ7Q0FDMUQsQ0FBQyxDQUFDO0FBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO0lBQ3hDLElBQUksRUFBRSx5Q0FBeUM7Q0FDaEQsQ0FBQyxDQUFDO0FBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQztBQUUxRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDakMsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUM7UUFDOUIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1FBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztLQUMxQixDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ1IsRUFBRTtJQUVGLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRWhELE1BQU0sWUFBWSxDQUNoQixTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxTQUFTLEVBQ2QsT0FBTyxDQUNSLENBQUM7SUFFRixPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMifQ==