diff --git a/scripts/backup.sh b/scripts/backup.sh new file mode 100755 index 0000000..2fedf8a --- /dev/null +++ b/scripts/backup.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Set the MongoDB connection URI +MONGO_URI="mongodb://localhost:27017" + +# Set the database name +DB_NAME="Dictionarry" + +# Set the path to the backups directory +BACKUPS_DIR="../backups" + +# Create the backups directory if it doesn't exist +mkdir -p $BACKUPS_DIR + +# Get the current date and time +CURRENT_DATE=$(date +%d_%b_%Y_%H%M) + +# Create a new backup file with "release" prefix and formatted date +BACKUP_FILE="$BACKUPS_DIR/release_dictionarry_backup_$CURRENT_DATE.archive" + +# Perform the database dump +mongodump --uri "$MONGO_URI" --db "$DB_NAME" --archive="$BACKUP_FILE" --gzip + +# Check if the backup was successful +if [ $? -eq 0 ]; then + echo "Database backup created successfully: $BACKUP_FILE" +else + echo "Error: Failed to create database backup." + exit 1 +fi \ No newline at end of file diff --git a/scripts/restore.sh b/scripts/restore.sh new file mode 100755 index 0000000..6bc3153 --- /dev/null +++ b/scripts/restore.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Set the MongoDB connection URI +MONGO_URI="mongodb://localhost:27017" + +# Set the database name +DB_NAME="Dictionarry" + +# Set the path to the backups directory +BACKUPS_DIR="../backups" + +# Find the latest backup file with "release" prefix +LATEST_BACKUP=$(ls -t "$BACKUPS_DIR"/release_dictionarry_backup_*.archive | head -1) + +# Check if a backup file was found +if [ -z "$LATEST_BACKUP" ]; then + echo "Error: No backup file found with 'release' prefix." + exit 1 +fi + +# Extract the date from the latest backup filename +BACKUP_DATE=$(echo "$LATEST_BACKUP" | sed -E 's/.*backup_(.*)\.archive/\1/') + +# Drop the existing database +mongosh "$MONGO_URI" --eval "db.getSiblingDB('$DB_NAME').dropDatabase()" + +# Restore the latest backup +mongorestore --uri "$MONGO_URI" --archive="$LATEST_BACKUP" --gzip + +# Check if the restore was successful +if [ $? -eq 0 ]; then + echo "Database restored successfully from backup dated: $BACKUP_DATE" +else + echo "Error: Failed to restore database." + exit 1 +fi \ No newline at end of file