diff options
author | ivan <ivan> | 2004-01-20 20:30:03 +0000 |
---|---|---|
committer | ivan <ivan> | 2004-01-20 20:30:03 +0000 |
commit | 790f80663a0ddcb4f2496bad4b2e0bfa80bc3210 (patch) | |
tree | 7a069af2b897d62b8eac1aba300c7b04b38bd256 /httemplate | |
parent | 7bf662bf7b1bdbddb43052600efeaefd62ea0002 (diff) |
add database dump from web interface
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/index.html | 1 | ||||
-rw-r--r-- | httemplate/misc/dump.cgi | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/httemplate/index.html b/httemplate/index.html index d4284fa4a..548c25ceb 100644 --- a/httemplate/index.html +++ b/httemplate/index.html @@ -153,6 +153,7 @@ <BR><A HREF="browse/queue.cgi">View pending job queue</A> <BR><A HREF="misc/cust_main-import.cgi">Batch import customers from CSV file</A> <BR><A HREF="misc/cust_main-import_charges.cgi">Batch import charges from CSV file</A> + <BR><A HREF="misc/dump.cgi">Download database dump</A> <BR><BR><CENTER><HR WIDTH="94%" NOSHADE></CENTER><BR> <A NAME="config" HREF="config/config-view.cgi">Configuration</a><!-- - <font size="+2" color="#ff0000">start here</font> --> <BR><BR><A NAME="admin">Administration</a> diff --git a/httemplate/misc/dump.cgi b/httemplate/misc/dump.cgi new file mode 100644 index 000000000..2c7dfc455 --- /dev/null +++ b/httemplate/misc/dump.cgi @@ -0,0 +1,19 @@ +<% + if ( driver_name =~ /^Pg$/ ) { + my $dbname = (split(':', datasrc))[2]; + if ( $dbname =~ /[;=]/ ) { + my %elements = map { /^(\w+)=(.*)$/; $1=>$2 } split(';', $dbname); + $dbname = $elements{'dbname'}; + } + open(DUMP,"pg_dump $dbname |"); + } else { + eidiot "don't (yet) know how to dump ". driver_name. " databases\n"; + } + + http_header('Content-Type' => 'text/plain' ); + + while (<DUMP>) { + chomp; +%><%= $_ %><% } + close DUMP; +%> |