Thread: Problem restoring a dump
Good day, I have installed postgresql 9.0 on my Debian and thought that restoring the database would be as simple as psql -f <the dump made by 8.4's pg_dumpall>. However: I get several errors like this: psql:pgdump.txt.1:4453471: ERROR: character 0xe280a6 of encoding "UTF8" has no equivalent in "LATIN1" I have changed the client-encoding of psql to UTF8 but I see after the restore of the dump the encoding is still LATIN1. How do I overcome this? Regards Johann -- Johann Spies Telefoon: 021-808 4699 Databestuurder / Data manager Sentrum vir Navorsing oor Evaluasie, Wetenskap en Tegnologie Centre for Research on Evaluation, Science and Technology Universiteit Stellenbosch. "For my thoughts are not your thoughts, neither are your ways my ways, saith the LORD. For as the heavens are higher than the earth, so are my ways higher than your ways, and my thoughts than your thoughts." Isaiah 55:8,9
hi, the character that is giving you troubles is "orizontal ellipsis", this character does not exists in latin1 encoding, onlyin utf8, so database you dumped was utf8 encoded. i think the fastest way you have to solve the problem is: change the encoding of the target database you are trying to restore. Regards Giulio. Il giorno 13/set/2011, alle ore 11.18, Johann Spies ha scritto: > Good day, > > I have installed postgresql 9.0 on my Debian and thought that restoring > the database would be as simple as psql -f <the dump made by 8.4's > pg_dumpall>. > > However: I get several errors like this: > > psql:pgdump.txt.1:4453471: ERROR: character 0xe280a6 of encoding "UTF8" > has no equivalent in "LATIN1" > > I have changed the client-encoding of psql to UTF8 but I see after the > restore of the dump the encoding is still LATIN1. > > How do I overcome this? > > Regards > Johann > -- > Johann Spies Telefoon: 021-808 4699 > Databestuurder / Data manager > > Sentrum vir Navorsing oor Evaluasie, Wetenskap en Tegnologie > Centre for Research on Evaluation, Science and Technology > Universiteit Stellenbosch. > > "For my thoughts are not your thoughts, neither are > your ways my ways, saith the LORD. For as the heavens > are higher than the earth, so are my ways higher than > your ways, and my thoughts than your thoughts." > Isaiah 55:8,9 > > -- > Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-admin
Hi Johann, as Giulio pointed out, it seems like the destination database is in LATIN1 encoding, rather than UTF8. Could you please confirm this? By reading the little information we have, it seems like you have an export in UTF8 and you are trying to load it into a LATIN1 database. If you specify the client_encoding you are actually informing psql that you are reading UTF8 - which is probably fine given the above assumptions - but that does not specify how the information is then stored in the database. That's decided by the database encoding. Also, I suggest that you dump your database using the destination version's pg_dump rather than the source's. Please keep us posted. Cheers, Gabriele On Tue, 13 Sep 2011 11:43:27 +0200, giulio calacoci <giulio.calacoci@2ndquadrant.it> wrote: > hi, > > the character that is giving you troubles is "orizontal ellipsis", > this character does not exists in latin1 encoding, only in utf8, so > database you dumped was utf8 encoded. > > i think the fastest way you have to solve the problem is: change the > encoding of the target database you are trying to restore. > > Regards > > Giulio. > > Il giorno 13/set/2011, alle ore 11.18, Johann Spies ha scritto: > >> Good day, >> >> I have installed postgresql 9.0 on my Debian and thought that >> restoring >> the database would be as simple as psql -f <the dump made by 8.4's >> pg_dumpall>. >> >> However: I get several errors like this: >> >> psql:pgdump.txt.1:4453471: ERROR: character 0xe280a6 of encoding >> "UTF8" >> has no equivalent in "LATIN1" >> >> I have changed the client-encoding of psql to UTF8 but I see after >> the >> restore of the dump the encoding is still LATIN1. >> >> How do I overcome this? >> >> Regards >> Johann >> -- >> Johann Spies Telefoon: 021-808 4699 >> Databestuurder / Data manager >> >> Sentrum vir Navorsing oor Evaluasie, Wetenskap en Tegnologie >> Centre for Research on Evaluation, Science and Technology >> Universiteit Stellenbosch. >> >> "For my thoughts are not your thoughts, neither are >> your ways my ways, saith the LORD. For as the heavens >> are higher than the earth, so are my ways higher than >> your ways, and my thoughts than your thoughts." >> Isaiah 55:8,9 >> >> -- >> Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org) >> To make changes to your subscription: >> http://www.postgresql.org/mailpref/pgsql-admin -- Gabriele Bartolini - 2ndQuadrant Italia PostgreSQL Training, Services and Support Gabriele.Bartolini@2ndQuadrant.it - www.2ndQuadrant.it
Thanks Giulio and Gabriele, > as Giulio pointed out, it seems like the destination database is in > LATIN1 encoding, rather than UTF8. Could you please confirm this? That was the case. I deleted one of the databases and recreated it with as a UTF-8 encoded database and the import went well. Question: Can I change the encoding system of an existing database? If so, how? Regards Johann -- Johann Spies Telefoon: 021-808 4699 Databestuurder / Data manager Sentrum vir Navorsing oor Evaluasie, Wetenskap en Tegnologie Centre for Research on Evaluation, Science and Technology Universiteit Stellenbosch. "For my thoughts are not your thoughts, neither are your ways my ways, saith the LORD. For as the heavens are higher than the earth, so are my ways higher than your ways, and my thoughts than your thoughts." Isaiah 55:8,9
On Tue, 2011-09-13 at 14:47 +0200, Johann Spies wrote: > Thanks Giulio and Gabriele, > > > as Giulio pointed out, it seems like the destination database is in > > LATIN1 encoding, rather than UTF8. Could you please confirm this? > > That was the case. I deleted one of the databases and recreated it with > as a UTF-8 encoded database and the import went well. > > Question: Can I change the encoding system of an existing database? If > so, how? > No, you can't. You need to create a new one with the good encoding. -- Guillaume http://blog.guillaume.lelarge.info http://www.dalibo.com
On 09/13/2011 08:47 PM, Johann Spies wrote: > Thanks Giulio and Gabriele, > >> as Giulio pointed out, it seems like the destination database is in >> LATIN1 encoding, rather than UTF8. Could you please confirm this? > That was the case. I deleted one of the databases and recreated it with > as a UTF-8 encoded database and the import went well. > > Question: Can I change the encoding system of an existing database? If > so, how? > You can re-encode a dump (see pg_dump's -E flag) then reload it into a new database with the new encoding. This will only work if the source database contains only characters that exist in the target encoding. You can't change the encoding of a database in-place. -- Craig Ringer -- Craig Ringer
On Wed, Sep 14, 2011 at 03:56:27AM +0200, Craig Ringer wrote: > > You can't change the encoding of a database in-place. Thanks Craig and all the other that responded. Enjoy your day. Regards Johann -- Johann Spies Telefoon: 021-808 4699 Databestuurder / Data manager Sentrum vir Navorsing oor Evaluasie, Wetenskap en Tegnologie Centre for Research on Evaluation, Science and Technology Universiteit Stellenbosch. "But without faith it is impossible to please him: for he that cometh to God must believe that he is, and that he is a rewarder of them that diligently seek him." Hebrews 11:6