From a7bb43458ea3a6b7cc367a35013af8c313f4fef4 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 28 Jun 2012 11:53:41 -0300 Subject: Unifying database restoration with hydra_backup_restore_database --- lib/hydra/backup | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'lib/hydra/backup') diff --git a/lib/hydra/backup b/lib/hydra/backup index e3edf50..0209570 100644 --- a/lib/hydra/backup +++ b/lib/hydra/backup @@ -87,3 +87,37 @@ function hydra_backup_environment_remote { DB_DUMP_BASE="$RESTOREDIR/var/backups/mysql/sqldump/" mkdir -p $RESTOREDIR } + +# Restore a database +function hydra_backup_restore_database { + DATABASE="$1" + + if [ -z "$DATABASE" ]; then + return + fi + + # Check if there are database dumps + if [ -f "$DB_DUMP_BASE/$DATABASE.sql.gz" ]; then + DB_DUMP_EXT=".gz" + DB_DUMP_EXTRACT="gunzip" + elif [ -f "$DB_DUMP_BASE/$DATABASE.sql.bz2" ]; then + DB_DUMP_EXT=".bz2" + DB_DUMP_EXTRACT="bunzip2" + elif [ -f "$DB_DUMP_BASE/$DATABASE.sql" ]; then + DB_DUMP_EXT="" + DB_DUMP_EXTRACT="true" + fi + + # Restore database + if [ ! -z "$DB_DUMP_EXT" ]; then + echo "Restoring database $DATABASE..." + hydra_set_tmpfile $DATABASE -d + cp $DB_DUMP_BASE/$DATABASE.sql$DB_DUMP_EXT $TMPWORK + ( cd $TMPWORK && $DB_DUMP_EXTRACT $DATABASE.sql$DB_DUMP_EXT ) + hydra_truncate_database $DATABASE + mysql $DATABASE < $TMPWORK/$DATABASE.sql + hydra_unset_tmpfile $TMPWORK + else + echo "Database should be manually restored" + fi +} -- cgit v1.2.3