]> gitweb.fluxo.info Git - hydra.git/commitdiff
Truncate database name to 16 chars max
authorSilvio Rhatto <rhatto@riseup.net>
Fri, 21 Mar 2014 20:53:22 +0000 (17:53 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Fri, 21 Mar 2014 20:53:22 +0000 (17:53 -0300)
TODO.md
lib/hydra/backup
share/hydractl/backup-restore-database
share/hydractl/backup-site

diff --git a/TODO.md b/TODO.md
index ea6f5ce7109a10a50a1439f6de2f987dc3debd22..3c887cac6f6eef72f2874d51a1f47314bda1cf50 100644 (file)
--- a/TODO.md
+++ b/TODO.md
@@ -21,4 +21,3 @@ Hydractl
   - backup-restore-site:
     - metastore integration for fine-grained permissions
     - use metadata do detect drupal series
-    - truncate database name to 16 chars max
index 000bc5a27d163efa5fe2d4e9277e54983915a181..5d61db3b03c8780fbfb451d00a6d82605b651ed4 100644 (file)
@@ -168,3 +168,9 @@ function hydra_backup_restore_database {
     echo "Database should be manually restored"
   fi
 }
+
+# Return a normalized database name
+function hydra_database_name {
+  # MySQL 16 chars limit
+  echo $1 | sed -r 's/(^>.{16}).*/\1/'"
+}
index 19125290f20b6a2ee462ef95079fefbc8bd06855..ca0a755e4a64fc620437168420bf3db24c1c165e 100755 (executable)
@@ -23,12 +23,12 @@ hydra_config_load
 # Parameters.
 DATE="`date +%Y%m%d`"
 HOST="$1"
-DATABASE="$2"
+DATABASE="`hydra_database_name $2`"
 BASEDIR="/tmp"
 
 # Check restore strategy.
 if [ "$1" == "backups" ]; then
-  DATABASE="$3"
+  DATABASE="`hydra_database_name $3`"
   hydra_backup_environment_local_website $2 $3
 elif [ "$HOST" == "localhost" ] || [ "$HOST" == "`facter hostname`" ]; then
   hydra_backup_environment_local
index 68b2e4c046bff7f276dcd313c094bc18fb0b2490..437d3e4bf042213e6fbfe9a0ab0c94322d82bd62 100755 (executable)
@@ -28,6 +28,7 @@ DATE="`date +%Y%m%d`"
 DEST_BASE="$SITES/backups/site"
 DEST_BASE_SITE="$DEST_BASE/$SITE"
 DEST="$DEST_BASE_SITE/`facter hostname`/$DATE"
+DATABASE="`hydra_database_name $SITE`"
 
 # Syntax check.
 if [ -z "$SITE" ]; then
@@ -116,18 +117,18 @@ if [ -d "$LOCATION" ]; then
 fi
 
 # Backup database
-if [ -d "/var/lib/mysql/$SITE" ]; then
-  if [ -e "$SITE.sql.bz2" ]; then
-    echo "File $SITE.sql.bz2 already exists, skipping..."
+if [ -d "/var/lib/mysql/$DATABASE" ]; then
+  if [ -e "$DATABASE" ]; then
+    echo "File $DATABASE already exists, skipping..."
   else
-    echo "Backing up database $SITE..."
-    mysqldump $SITE > $SITE.sql
-    bzip2 $SITE.sql
-    rm -f $SITE.sql
-    md5sum $SITE.sql.bz2 > $SITE.sql.bz2.md5
-    sha1sum $SITE.sql.bz2 > $SITE.sql.bz2.sha1
-    chown root.$BACKUPS_GROUP $SITE.sql*
-    chmod 640 $SITE.sql*
-    echo "Saved $DEST/$SITE.sql.bz2"
+    echo "Backing up database $DATABASE..."
+    mysqldump $DATABASE > $DATABASE.sql
+    bzip2 $DATABASE.sql
+    rm -f $DATABASE.sql
+    md5sum $DATABASE.sql.bz2 > $DATABASE.sql.bz2.md5
+    sha1sum $DATABASE.sql.bz2 > $DATABASE.sql.bz2.sha1
+    chown root.$BACKUPS_GROUP $DATABASE.sql*
+    chmod 640 $DATABASE.sql*
+    echo "Saved $DEST/$DATABASE.sql.bz2"
   fi
 fi