Search Postgresql Archives

Dumping in LATIN1 and restoring in UTF-8

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all.

Here is my use case: I've an application which uses PostgreSQL as
backend. Up to now, the database was encoded in SQL_ASCII or LATIN1.
Now, we need to migrate to UTF-8.

What we tried, was to:

1) dump the database using pg_dump, in tar format (we had blob);
2) modifying the result, using some conversion tool (like recode)


3) destroying the old database
4) recreating the database with UNICODE setting
5) restoring the database using pg_restore

The result was not what I expected. The pg_restore was using the
LATIN1 encoding to encode the strings, resulting in a LATIN1 encoded
in UTF-8...

The problem lied in the toc.dat file, which stated that the client
encoding was LATIN1, instead of UTF-8.

The solution in the end has been to manually modifying the toc.dat
file, substituting the LATIN1 string with UTF-8 (plus a space, since
the toc.dat is a binary file).

Even though it worked for us, I wonder if there is any other way to
accomplish the same result, at least to specify the encoding for the
restore.

Regards
Marco
--
Marco Bizzarri
http://notenotturne.blogspot.com/


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux