OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Thomas Lotterer
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-registry Date: 03-Aug-2006 01:16:14
Branch: HEAD Handle: 2006080300161400
Modified files:
openpkg-registry registry-db.pl
Log:
add erase command
Summary:
Revision Changes Path
1.43 +35 -2 openpkg-registry/registry-db.pl
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-registry/registry-db.pl
============================================================================
$ cvs diff -u -r1.42 -r1.43 registry-db.pl
--- openpkg-registry/registry-db.pl 2 Aug 2006 23:15:34 -0000 1.42
+++ openpkg-registry/registry-db.pl 2 Aug 2006 23:16:14 -0000 1.43
@@ -106,6 +106,7 @@
-V|version print version
Available commands:
setup setup/upgrade database
+ erase erase all data from database
};
$txt =~ s/^\n//s; $txt =~ s/^[ ]{8}//mg; $txt =~ s/ *$//mg;
if ($level eq "INFO") {
@@ -129,7 +130,8 @@
( $#ARGV == 0 ) || &usage("ERROR");
# check data prefix
-if ( $ARGV[0] eq "setup") {
+if ( $ARGV[0] eq "setup"
+ or $ARGV[0] eq "erase") {
&error("required data prefix empty") if ($opt->{prefix} eq "");
&error("required data prefix unset") if ($opt->{prefix} =~ m/[EMAIL
PROTECTED]@$/);
}
@@ -154,6 +156,9 @@
if ($ARGV[0] eq "setup") {
&setup();
}
+elsif ($ARGV[0] eq "erase") {
+ &erase();
+}
exit(0);
sub dbopen($)
@@ -248,6 +253,27 @@
return 1;
}
+sub erase ()
+{
+ $dbh = &dbopen("template1");
+ die "ERROR:$0: DataBase error: ".$DBI::errstr."\n" if (not defined $dbh);
+
+ $sql = sprintf "DROP DATABASE %s;",
+ $cfg->{db}->{registry}->{database};
+ &dbdo($dbh, $sql,
+ 'database .* does not exist') || die;
+
+ $sql = sprintf "DROP TABLESPACE %s;",
+ $cfg->{db}->{registry}->{tablespace};
+ &dbdo($dbh, $sql,
+ 'tablespace .* does not exist') || die;
+
+ $sql = sprintf "DROP USER %s;",
+ $cfg->{db}->{registry}->{username};
+ &dbdo($dbh, $sql,
+ '(user|role) .* does not exist') || die;
+}
+
sub setup ()
{
# create user, tablespace and database
@@ -855,11 +881,12 @@
[I<-D|debug>] [I<-H|help>] [I<-V|version>]
Available commands:
setup setup/upgrade database
+ erase erase all data from database
=head1 DESCRIPTION
B<registry-db> is the DataBase utility for OpenPKG Registry Servers.
-It is used by administrators to setup the
+It is used by administrators to setup and erase the
Registry Server and to review the default configuration, the contents
of the used configuration file and the internal result of both being
merged.
@@ -908,6 +935,12 @@
DataBase. This is an ideal precondition to start from scratch or running
a restore.
+=item B<erase>
+
+Erases the DataBase, destroying data, tables, database, role and
+tablespace. NO QUESTIONS ASKED! Ideal precondition to get rid of a
+Registry Server or restart a setup from scratch.
+
=back
=head1 FILES
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [email protected]