16 $x = Encode::decode('iso8859-1', $x);
25 my ($mdbh, $sdbh, $table) = @_;
26 my $start = [ Time::HiRes::gettimeofday ];
27 my $data = $mdbh->selectall_arrayref("SELECT * FROM $table");
28 my $elapsed = Time::HiRes::tv_interval($start);
29 #printf "MySQL $table time used: $elapsed\n";
31 $start = [ Time::HiRes::gettimeofday ];
32 $sdbh->do("DELETE FROM $table");
33 $sdbh->do("COPY $table FROM STDIN");
35 for my $row (@$data) {
36 $sdbh->pg_putcopydata(join("\t", map { copy_escape($_) } (@$row)) . "\n");
38 $sdbh->pg_putcopyend();
39 $elapsed = Time::HiRes::tv_interval($start);
40 #printf "PostgreSQL $table time used: $elapsed\n";
43 my $mdbh = DBI->connect($config::master_connstr, $config::master_username, $config::master_password)
44 or die "PostgreSQL connect: " . $DBI::errstr;
45 $mdbh->{AutoCommit} = 0;
46 $mdbh->{RaiseError} = 1;
48 my $sdbh = DBI->connect($config::local_connstr, $config::local_username, $config::local_password)
49 or die "PostgreSQL connect: " . $DBI::errstr;
50 $sdbh->{AutoCommit} = 0;
51 $sdbh->{RaiseError} = 1;
53 # For our own enjoyment.
54 sync_table($mdbh, $sdbh, "Fotballbrukere");
55 sync_table($mdbh, $sdbh, "Fotballdeltagere");
56 sync_table($mdbh, $sdbh, "Fotballresultater");
57 sync_table($mdbh, $sdbh, "Fotballresultater_2123");
58 sync_table($mdbh, $sdbh, "Fotballserier");
61 sync_table($mdbh, $sdbh, 'Fotballjuks');
62 sync_table($mdbh, $sdbh, 'FotballKaffeklubb');
63 sync_table($mdbh, $sdbh, 'Fotballkommentarer');
64 sync_table($mdbh, $sdbh, 'Fotballkommentartema');
65 sync_table($mdbh, $sdbh, 'FotballLogin');
66 sync_table($mdbh, $sdbh, 'Fotballspraak');
67 sync_table($mdbh, $sdbh, 'Fotballtoppti');
68 sync_table($mdbh, $sdbh, 'Fotballvariabler');
70 $sdbh->do('DELETE FROM last_sync');
71 $sdbh->do('INSERT INTO last_sync VALUES ( CURRENT_TIMESTAMP );');