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,
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) = @_;
# 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);
"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 {
print STDERR "create new local database\n";
- postgres_admin_cmd('createdb', undef, $dbname);
+ $createdb->($dbname);
print STDERR "insert received data into local database\n";