56 lines
1.3 KiB
JavaScript
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() |