Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / utf-8, переход на 8.1.4 / 3 сообщений из 3, страница 1 из 1
02.08.2007, 11:36
    #34700569
Rastafarra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
utf-8, переход на 8.1.4
день добрый

при переходе с 8.0 на 8.1.4 есть проблема.

цитата: Some users are having problems loading UTF-8 data into 8.1.X. This is because previous versions allowed invalid UTF-8 byte sequences to be entered into the database, and this release properly accepts only valid UTF-8 sequences. One way to correct a dumpfile is to run the command iconv -c -f UTF-8 -t UTF-8 -o cleanfile.sql dumpfile.sql. The -c option removes invalid character sequences. A diff of the two files will show the sequences that are invalid. iconv reads the entire input file into memory so it might be necessary to use split to break up the dump into multiple smaller files for processing.

отлично. на сколько я понял это если получить пачку инсертов как плаин текст. тут появляются другие проблемы: большая база отказывается выгружаться как текст, требуя выбрать другой формат. делаю бэкап с -Ft. tar просто прогнать через iconv нельзя, поэтому разархивировал его, find ./ -exec iconv сделал. обратно собрать так, чтобы pg_restore не ругался не получилось, пришлось сделать ls | cat | psql databasename. после 15 часов работы ничего не поменялось :)

select * from table1 where lower(field[1]) like 'test' отваливается так:

ERROR: invalid byte sequence for encoding "UTF 8"

отваливается только на запросах с lower/upper к таблицам с массивами в полях, в остальном работает вроде нормально.

сталкивался кто? как решали?
...
Рейтинг: 0 / 0
23.08.2007, 15:17
    #34748185
the dot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
utf-8, переход на 8.1.4
сам сейчас бьюсь с этой же проблемой
...
Рейтинг: 0 / 0
23.08.2007, 16:01
    #34748355
Rastafarra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
utf-8, переход на 8.1.4
а я торжественно переехал. правда не без косяков, но вроде бы уже все убрал.

делал так: опытной путей выяснил, что у меня ломается только в тех местах, где есть массивы с русскими буквами (и только!). таких таблиц оказалось не много. выгрузил из как insert-ы. посмотрел, и ничего лучше как vim-ом прогнать через регэксп, которые делает кошерный инсерт, не придумал. на раздумывание ушло где-то часа 2 + 3-4 бутылки пива. итог: база переехала на 8.2.4 с небольшимы огворками. почему-то у меня отработал регэксп кривовато, и некоторые записи создались как трижды вложенный массив :)
+ в некоторых местах послетали foreign key, но их было не много.
наши пользователи по обнаружению багов это дело поправили, либо отрапортовали. из ~500000 тысяч у меня отвалилось ~300 записей в таблице.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / utf-8, переход на 8.1.4 / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]