58 lines
No EOL
1.7 KiB
Bash
Executable file
58 lines
No EOL
1.7 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Define the backup directory and the SQLite database file
|
|
BACKUP_DIR="database/backups"
|
|
DB_FILE="database/database.sqlite"
|
|
# DATE="20260124_115644"
|
|
DATE="20260124_123340"
|
|
|
|
# Ensure the DATE variable is set
|
|
if [ -z "$DATE" ]; then
|
|
echo "DATE variable is not set. Please set the DATE variable to match the backup file date."
|
|
exit 1
|
|
fi
|
|
|
|
# Check if the backup directory exists
|
|
if [ ! -d "$BACKUP_DIR" ]; then
|
|
echo "Backup directory does not exist: $BACKUP_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
# Check if the SQLite database file exists
|
|
if [ ! -f "$DB_FILE" ]; then
|
|
echo "SQLite database file does not exist: $DB_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
# Check if there are any matching backup files
|
|
if ! ls "$BACKUP_DIR"/*"$DATE".sql 1> /dev/null 2>&1; then
|
|
echo "No backup files found for the date: $DATE"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Starting restore process from backups dated: $DATE"
|
|
echo "Using database file: $DB_FILE"
|
|
|
|
# Loop through each file in the backup directory
|
|
for file in "$BACKUP_DIR"/*"$DATE".sql; do
|
|
if [ -f "$file" ]; then
|
|
echo "Restoring data from $file into $DB_FILE..."
|
|
|
|
# Import the SQL file into the SQLite database and log output
|
|
sqlite3 "$DB_FILE" < "$file" 2>> restore_errors.log
|
|
|
|
# Check for errors in the restore process
|
|
if [ $? -eq 0 ]; then
|
|
echo "Successfully restored $file"
|
|
else
|
|
echo "Failed to restore $file. Check restore_errors.log for details."
|
|
fi
|
|
|
|
# Debugging: Print the last 10 lines of the database to verify data
|
|
# echo "Last 10 rows of the database after restoring $file:"
|
|
# sqlite3 "$DB_FILE" "SELECT * FROM sqlite_master WHERE type='table';" 2>> restore_errors.log
|
|
# sqlite3 "$DB_FILE" "SELECT * FROM entries ORDER BY rowid DESC LIMIT 10;" 2>> restore_errors.log
|
|
fi
|
|
done
|
|
|
|
echo "Restore process completed." |