On Tue, 15 Jun 2010 10:48:10 +0300
Игорь Чумак <[email protected]> wrote:

> Добрый день!
> 
> Есть софтина (prelude), которая умеет работать как с mysql, так и с 
> postgresql.
> С mysql работает корректно, но очень медленно. После перехода на 
> postgresql заработало значительно быстрее и стабильнее, но перестала 
> сохраняться кириллица.
> В mysql всё хранилось в utf8.
> В postgresql - хз (никогда раньше с ним не работал).
> 
> Через phppgadmin видно , что вместо кириллицы в таблицах строки вида 
> \002\377\377\205\004\000\000\002\004\005\264\001\001\004\002
> 
> В mysql таблица описывается так:
> 
> CREATE TABLE Prelude_AdditionalData (
>  _message_ident BIGINT UNSIGNED NOT NULL,
>  _parent_type ENUM('A', 'H') NOT NULL,
>  _index TINYINT NOT NULL,
>  type 
> ENUM("boolean","byte","character","date-time","integer","ntpstamp","portlist","real","string","byte-string","xml")
>  
> NOT NULL,
>  meaning VARCHAR(255) NULL,
>  data BLOB NOT NULL,
>  PRIMARY KEY (_parent_type, _message_ident, _index)
> ) TYPE=InnoDB;
> 
> В postgresql так:
> 
> CREATE TABLE Prelude_AdditionalData (
>  _message_ident INT8 NOT NULL,
>  _parent_type VARCHAR(1) CHECK (_parent_type IN ('A', 'H')) NOT NULL,
>  _index INT2 NOT NULL,
>  type VARCHAR(32) CHECK ( type IN
   ^^^^ 
> ('boolean','byte','character','date-time','integer','ntpstamp','portlist','real','string','byte-string','xml'))
>  
> NOT NULL,
>  meaning VARCHAR(255) NULL,
>  data BYTEA NOT NULL,
   ^^^^^^^^^^
>  PRIMARY KEY (_parent_type, _message_ident, _index)
> ) ;
> 
> Портится информация в поле data
> 
> Как бы это подправить?

исправить bytea на text и посмотреть что будет
вообще, мне кажется неправильно использовать в sql такого типа таблицы где 
задаётся тип поля отдельным полем и используется bytea, но может и будет 
работать

postgresql прозрачненько умеет кодировки конвертировать а используя bytea вы 
эту возможность обрезали

да, и надо посмотреть с какой кодировкой создалась база - лучше всего чтоб там 
utf8 было


--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Ответить