Files
myDrive/serverUtils/backupDatabase.js
T

56 lines
1.3 KiB
JavaScript

const mongoose = require("../backend/db/mongooseServerUtils");
const conn = mongoose.connection;
const prompts = require("prompts");
const createTempDirectory = require("./createTempDirectory");
const waitForDatabase = () => {
return new Promise((resolve, reject) => {
if (conn.readyState !== 1) {
conn.once("open", () => {
resolve();
})
} else {
resolve();
}
})
}
const copyDatabase = async() => {
console.log("Waiting For Database Connection...");
await waitForDatabase();
console.log("Connected To Database\n");
const userConfimation = await prompts({
type: 'text',
message: "Warning: This will create a new Database backup, overwriting\n" +
"the current database backup. Only ONE Database backup\n" +
"can Be Stored At A Time.\n" +
"For more permanent backups, use MongoExport, or \n" +
"Backup data manually. \n" +
"Would you like to continue? (Yes/No)",
name: "value"
})
if (!userConfimation.value || userConfimation.value.toLowerCase() !== "yes") {
console.log("Exiting...")
process.exit()
return;
}
await createTempDirectory();
console.log("Finished Copying Database, Exiting...");
process.exit();
}
copyDatabase()