Hi, I had the same problem. The situation I (and probably you) had was: - old 8.2 cluster with default encoding: [EMAIL PROTECTED] + encoding of databases "template0", "template1" and "postgres": [EMAIL PROTECTED] + encoding of database "test": UTF-8 - current system locale: de_DE.UTF-8
My custom solution was to: - hardcode UTF-8 as the 8.3 cluster default encoding, which ignores the detected encoding of the old 8.2 cluster - don't upgrade template0, template1 and postgres databases Attached is a patch for pg_upgradecluster, but be aware that this is a custom hack that works for me, not a proper solution. Regards, Bastian
--- /usr/bin/pg_upgradecluster.orig 2008-02-07 22:14:14.000000000 +0100 +++ /usr/bin/pg_upgradecluster 2008-02-07 22:14:21.000000000 +0100 @@ -227,6 +227,9 @@ my ($lc_ctype, $lc_collate) = get_cluster_locales $version, $cluster; error 'could not get cluster locale' unless $lc_ctype; error 'could not get cluster collating locale' unless $lc_collate; +$encoding = "UTF-8"; +$lc_ctype = "de_DE.UTF-8"; +$lc_collate = "de_DE.UTF-8"; if (cluster_exists $newversion, $cluster) { error "target cluster $newversion/$cluster already exists"; @@ -372,6 +375,8 @@ # Upgrade databases for my $db (keys %databases) { next if $db eq 'template0'; + next if $db eq 'template1'; + next if $db eq 'postgres'; if ($db eq 'postgres' && $newversion ge '8.1') { (system 'dropdb', '--cluster', "$newversion/$cluster", '-q', 'postgres');
signature.asc
Description: This is a digitally signed message part.