Титла: Postgresql unicode problem Публикувано от: dilyan в Oct 25, 2006, 20:03 привет,
боря се със следния проблем: Постгрес база с уникод (UTF-8), вътре мешано кирилица, латиница, работи без проблем. От 8.0.3 минавам на 8.0.8 поради бъг фиксове, memory leakage, etc. следвайки инструкцийте - спиране на постмастер-а, rpm -Uvh ... всичко пали, върви, работи без проблем. Правя обаче един pg_dump и после при pg_restore ми дава грешка, че в една таблица имам проблем с енкодинга - някакъв си ред съдържа неверна за енкодинга поредица. В една таблица такова нещо имам на кирилица, в друга на латиница, общо около 3-4 таблици имат такъв проблем. Въпреки, че знам на кой ред е грешката ако вляза в pg_dump архива и го изтрия/поправя после не излизат сумите на проверката и дава грешка. Двете бази са на различни компютри но с абсолютно еднакви бази и техните конфигурации. Разликата е само, че дъмпещият е СуСЕ 10, а рестора е на СуСЕ 10.1. Четох, че има някакви конвертор тулове за енкодинг, но все пак конвертора прехвърля от един формат в друг, а не поправа грешки в енкодинга. Някой решавал ли е подобен проблем? Идеи? Титла: Postgresql unicode problem Публикувано от: gat3way в Oct 25, 2006, 23:00 iconv вероятно ще помогне за да смениш енкодинг-а на дъмп-а. Освен ако не е в "tar" формат (pg_dump -F t blabla) - последното ти създава и проблемите с чексумите предполагам?
Правиш наново дъмп-а в обикновен плейнтекст формат (pg_dump -F p blabla). После с iconv му сменяш енкодинг-а. Накрая, вкарваш дъмп-а с pg_restore. |