UNPKG

datastore-backup

Version:

Programatic Backup of Google Cloud Datastore

39 lines 3.16 kB
#!/usr/bin/env node /* * 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'; const parser = new ArgumentParser({ description: 'Backup Datastore.', epilog: 'Please provide `GOOGLE_APPLICATION_CREDENTIALS` via the Environment!', add_help: true, }); 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', }); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXN0b3JlRHVtcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vZGF0YXN0b3JlRHVtcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFFdEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDO0lBQ2hDLFdBQVcsRUFBRSxtQkFBbUI7SUFDaEMsTUFBTSxFQUNKLHNFQUFzRTtJQUN4RSxRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FBQztBQUNuRSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSw0QkFBNEIsRUFBRSxDQUFDLENBQUM7QUFDdEUsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO0lBQ3ZDLE9BQU8sRUFBRSxLQUFLO0lBQ2QsSUFBSSxFQUFFLDBCQUEwQjtDQUNqQyxDQUFDLENBQUM7QUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7SUFDeEMsSUFBSSxFQUFFLHlDQUF5QztDQUNoRCxDQUFDLENBQUM7QUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0FBRTFFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUNqQyxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQztRQUM5QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7UUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO0tBQzFCLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFDUixFQUFFO0lBRUYsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFaEQsTUFBTSxZQUFZLENBQ2hCLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFNBQVMsRUFDZCxPQUFPLENBQ1IsQ0FBQztJQUVGLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyJ9