OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 09-May-2008 09:20:19
Branch: HEAD Handle: 2008050908201701
Modified files:
openpkg-src/drupal drupal-setup.sh drupal.spec
Log:
add Drupal convenient database backup/restore possibilities (intended
for archiving purposes and performing risky changes in the
administration panel like enabling modules, etc)
Summary:
Revision Changes Path
1.14 +54 -3 openpkg-src/drupal/drupal-setup.sh
1.233 +3 -1 openpkg-src/drupal/drupal.spec
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/drupal/drupal-setup.sh
============================================================================
$ cvs diff -u -r1.13 -r1.14 drupal-setup.sh
--- openpkg-src/drupal/drupal-setup.sh 29 Feb 2008 18:48:33 -0000
1.13
+++ openpkg-src/drupal/drupal-setup.sh 9 May 2008 07:20:17 -0000
1.14
@@ -4,15 +4,19 @@
##
# command line argument sanity check
+prg="$0"
if [ $# -eq 0 ]; then
- echo "$0:ERROR: invalid command line" 1>&2
- echo "$0:USAGE: $0 install [<database-directory>]" 1>&2
- echo "$0:USAGE: $0 uninstall" 1>&2
+ echo "$prg:ERROR: invalid command line" 1>&2
+ echo "$prg:USAGE: $prg install [<database-directory>]" 1>&2
+ echo "$prg:USAGE: $prg uninstall" 1>&2
+ echo "$prg:USAGE: $prg backup [<dump-file>]" 1>&2
+ echo "$prg:USAGE: $prg restore [<dump-file>|<dump-number>]" 1>&2
exit 1
fi
# database configuration
db_dir="@l_prefix@/var/drupal/db"
+db_dump="@l_prefix@/var/drupal/dump"
db_type="@l_dbtype@"
db_name="drupal"
db_user="drupal"
@@ -76,5 +80,52 @@
# remove the generated configuration
rm -f @l_prefix@/share/drupal/sites/default/settings.php
;;
+ backup )
+ # backup the database
+ if [ $# -gt 0 ]; then
+ dumpfile="$1"
+ else
+ rm -f $db_dump/drupal-dump-9.sql.gz >/dev/null 2>&1 || true
+ i=8
+ while [ $i -ge 0 ]; do
+ if [ -f $db_dump/drupal-dump-$i.sql.bz2 ]; then
+ mv $db_dump/drupal-dump-$i.sql.bz2
$db_dump/drupal-dump-`expr $i + 1`.sql.bz2
+ fi
+ i=`expr $i - 1`
+ done
+ dumpfile="$db_dump/drupal-dump-0.sql.bz2"
+ fi
+ if [ ".$db_type" = .mysql ]; then
+ @l_prefix@/bin/mysqldump --user="$db_suser"
--password="$db_spass" "$db_name" | \
+ @l_prefix@/lib/openpkg/bzip2 -9 >$dumpfile
+ elif [ ".$db_type" = .pgsql ]; then
+ PGPASSWORD="$db_spass" @l_prefix@/bin/pq_dump -U "$db_suser"
"$db_sname" -f- | \
+ @l_prefix@/lib/openpkg/bzip2 -9 >$dumpfile
+ fi
+ ;;
+ restore )
+ # restore the database
+ if [ $# -gt 0 ]; then
+ dumpfile="$1"
+ else
+ dumpfile="0"
+ fi
+ case "$dumpfile" in
+ [0-9] ) dumpfile="$db_dump/drupal-dump-$dumpfile.sql.bz2" ;;
+ esac
+ if [ ! -f $dumpfile ]; then
+ echo "drupal-setup:restore:ERROR: no dump such dump file:
$dumpfile" 1>&2
+ exit 1
+ fi
+ $prg uninstall || exit $?
+ $prg install || exit $?
+ if [ ".$db_type" = .mysql ]; then
+ @l_prefix@/lib/openpkg/bzip2 -d -c $dumpfile | \
+ @l_prefix@/bin/mysql --user="$db_suser" --password="$db_spass"
"$db_sname"
+ elif [ ".$db_type" = .pgsql ]; then
+ @l_prefix@/lib/openpkg/bzip2 -d -c $dumpfile | \
+ PGPASSWORD="$db_spass" @l_prefix@/bin/psql -q -U "$db_suser" -d
"$db_sname" -f-
+ fi
+ ;;
esac
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/drupal/drupal.spec
============================================================================
$ cvs diff -u -r1.232 -r1.233 drupal.spec
--- openpkg-src/drupal/drupal.spec 8 May 2008 17:57:10 -0000 1.232
+++ openpkg-src/drupal/drupal.spec 9 May 2008 07:20:18 -0000 1.233
@@ -208,7 +208,7 @@
Group: CMS
License: GPL
Version: %{V_drupal}
-Release: 20080508
+Release: 20080509
# package options
%option with_mysql yes
@@ -1488,6 +1488,7 @@
$RPM_BUILD_ROOT%{l_prefix}/var/drupal/files \
$RPM_BUILD_ROOT%{l_prefix}/var/drupal/run \
$RPM_BUILD_ROOT%{l_prefix}/var/drupal/log \
+ $RPM_BUILD_ROOT%{l_prefix}/var/drupal/dump \
$RPM_BUILD_ROOT%{l_prefix}/var/drupal/db
# avoid copying unnecessary text files
@@ -1630,6 +1631,7 @@
rm -f $RPM_INSTALL_PREFIX/var/drupal/files/* >/dev/null 2>&1 || true
rm -f $RPM_INSTALL_PREFIX/var/drupal/log/* >/dev/null 2>&1 || true
rm -f $RPM_INSTALL_PREFIX/var/drupal/run/* >/dev/null 2>&1 || true
+ rm -f $RPM_INSTALL_PREFIX/var/drupal/dump/* >/dev/null 2>&1 || true
rm -f $RPM_INSTALL_PREFIX/var/drupal/db/* >/dev/null 2>&1 || true
fi
exit 0
@@ .
______________________________________________________________________
OpenPKG http://openpkg.org
CVS Repository Commit List [email protected]