]> git.proxmox.com Git - pmg-api.git/blobdiff - PMG/DBTools.pm
style fixup
[pmg-api.git] / PMG / DBTools.pm
index a7c96c4acd5ffb2c38d222dffd903a8287fb2501..24a692a223d2df38e9bdf8c5c4ac92e0c129effa 100644 (file)
@@ -146,7 +146,7 @@ __EOD
 
 my $local_stat_ctablecmd =  <<__EOD;
     CREATE TABLE LocalStat
-    (Time INTEGER NOT NULL UNIQUE,
+    (Time INTEGER NOT NULL,
      RBLCount INTEGER DEFAULT 0 NOT NULL,
      PregreetCount INTEGER DEFAULT 0 NOT NULL,
      CID INTEGER NOT NULL,
@@ -341,6 +341,19 @@ sub database_column_exists {
     return defined($res);
 }
 
+my $createdb = sub {
+    my ($dbname) = @_;
+    postgres_admin_cmd(
+       'createdb',
+       undef,
+       '-E', 'sql_ascii',
+       '-T', 'template0',
+       '--lc-collate=C',
+       '--lc-ctype=C',
+       $dbname,
+    );
+};
+
 sub create_ruledb {
     my ($dbname) = @_;
 
@@ -355,8 +368,7 @@ sub create_ruledb {
     # use sql_ascii to avoid any character set conversions, and be compatible with
     # older postgres versions (update from 8.1 must be possible)
 
-    postgres_admin_cmd('createdb', undef, '-E', 'sql_ascii', '-T', 'template0',
-                      '--lc-collate=C', '--lc-ctype=C', $dbname);
+    $createdb->($dbname);
 
     my $dbh = open_ruledb($dbname);
 
@@ -491,6 +503,10 @@ sub upgradedb {
                 "PregreetCount INTEGER DEFAULT 0 NOT NULL");
     }
 
+    eval { $dbh->do("ALTER TABLE LocalStat DROP CONSTRAINT localstat_time_key"); };
+    # ignore errors here
+
+
     # add missing TicketID to CMSReceivers
     if (!database_column_exists($dbh, 'CMSReceivers', 'TicketID')) {
        eval {
@@ -1142,7 +1158,7 @@ sub init_nodedb {
 
        print STDERR "create new local database\n";
 
-       postgres_admin_cmd('createdb', undef, $dbname);
+       $createdb->($dbname);
 
        print STDERR "insert received data into local database\n";