|
From: <di...@us...> - 2008-11-19 18:40:08
|
Revision: 623
http://safekeep.svn.sourceforge.net/safekeep/?rev=623&view=rev
Author: dimi
Date: 2008-11-19 18:40:03 +0000 (Wed, 19 Nov 2008)
Log Message:
-----------
Add pass-through options for the DB dump command
Modified Paths:
--------------
safekeep/trunk/doc/safekeep.backup.txt
safekeep/trunk/safekeep
safekeep/trunk/safekeep.spec.in
Modified: safekeep/trunk/doc/safekeep.backup.txt
===================================================================
--- safekeep/trunk/doc/safekeep.backup.txt 2008-11-19 18:16:58 UTC (rev 622)
+++ safekeep/trunk/doc/safekeep.backup.txt 2008-11-19 18:40:03 UTC (rev 623)
@@ -46,8 +46,9 @@
Databases can be dumped individualy using a dump clause for each database. -->
<dump
type="postgres"
- db="dbname"
+ db="my_db"
dbuser="foobar"
+ options="--schema=public"
file="/var/backup/dumps/mydata"
cleanup="true"
/>
@@ -182,6 +183,13 @@
This is currently supported only for MySQL databases.
Optional, it has no default value.
+/backup/setup/dump/@options::
+ Extra options to be passed along to the dump command.
+ This is database specific, and it is passed along as-is.
+ Please refer to your database documentation for possible
+ values that you can pass along.
+ Optional, it has no default value.
+
/backup/setup/dump/@user::
The system user under which the dump should take place.
Please note that using this feature requires that `safekeep(1)`
Modified: safekeep/trunk/safekeep
===================================================================
--- safekeep/trunk/safekeep 2008-11-19 18:16:58 UTC (rev 622)
+++ safekeep/trunk/safekeep 2008-11-19 18:40:03 UTC (rev 623)
@@ -225,12 +225,14 @@
user = dump_el.getAttribute('user')
dbuser = dump_el.getAttribute('dbuser')
dbpasswd = dump_el.getAttribute('dbpasswd')
+ opts = (dump_el.getAttribute('options') or '').split()
+
file = dump_el.getAttribute('file')
if not file:
raise ConfigException('You need to specify where the database should be dumped')
cleanup = dump_el.getAttribute('cleanup')
return { 'type' : type, 'db' : db, 'user' : user, 'dbuser' : dbuser, 'dbpasswd': dbpasswd,
- 'file' : file, 'cleanup' : cleanup }
+ 'opts' : opts, 'file' : file, 'cleanup' : cleanup }
def parse_snap(snap_el):
device = snap_el.getAttribute('device')
@@ -400,6 +402,7 @@
debug('Doing DB dumps')
for dump in cfg['dumps']:
type = dump['type']
+ opts = dump['opts']
if type in ('postgres', 'postgresql', 'pgsql'):
if dump['db']:
args = ['pg_dump']
@@ -408,6 +411,7 @@
args = ['pg_dumpall']
if dump['dbuser']:
args.extend(['-U', dump['dbuser']])
+ args.extend(opts)
if dump['db']:
args.append(dump['db'])
elif type in ('mysql'):
@@ -416,10 +420,11 @@
args.extend(['-u' + dump['dbuser']])
if dump['dbpasswd']:
args.extend(['-p' + dump['dbpasswd']])
+ if not dump['db']:
+ args.append('-A')
+ args.extend(opts)
if dump['db']:
args.append(dump['db'])
- else:
- args.append('-A')
else:
warn('Invalid database type: ' + type)
continue
Modified: safekeep/trunk/safekeep.spec.in
===================================================================
--- safekeep/trunk/safekeep.spec.in 2008-11-19 18:16:58 UTC (rev 622)
+++ safekeep/trunk/safekeep.spec.in 2008-11-19 18:40:03 UTC (rev 623)
@@ -116,6 +116,7 @@
%doc sample.backup
%changelog
+ - Add pass-through options for the DB dump command
- Implement bandwidth limiting, based on trickle
- By default, run safekeep with nice +10 on the server side
- Run ssh/rdiff through nice so we can control the load better on the server
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|