Доброго времени!
В связи с использованием Postgis возникла необходимость обновления базы с версии 8.1.4 на 8.4.
Вопрос может быть избитый, но хотелось бы услышать мнения гуру, как правильно все сделать, так как в базе содержатся рабочие данные, и ими пользуются люди.
Если есть возможность напишите, или дайте ссылку какие действия и в какой последовательности делать.
Спасибо!
Попытался сохранить pg_dump в
Попытался сохранить pg_dump в sql - кириллица сохранилась в непонятном формате...
CREATE TABLE accounts (
id integer DEFAULT nextval('accounts_id_seq'::regclass) NOT NULL,
company character varying(30) DEFAULT '????????????????'::character varying NOT NULL,
psw character varying(10) DEFAULT '1'::character varying NOT NULL,
c_login character varying(15) DEFAULT '1'::character varying NOT NULL,
tzone integer DEFAULT 7 NOT NULL,
blocked boolean DEFAULT false NOT NULL,
agent_id integer DEFAULT 0 NOT NULL,
show_warn boolean DEFAULT false NOT NULL
);
COPY accounts (id, company, psw, c_login, tzone, blocked, agent_id, show_warn) FROM stdin;
17 ?????? "??????" 1 1 6 f 1 f
24 TEST 1 1 6 f 1 f
27 ?????? "???????????? ????????????" 1 1 6 f 1 f
и при попытке накатить дамп через psql, ругается:
ERROR: value too long for type character varying(30)
CONTEXT: COPY accounts, line 3, column company: "п?п·п· "п?п?я?я?п?п? п°п?я?п?п?п?""
кто подскажет как в dump-файлах корректно сохранять кириллические символы ?
исходная база создана в кодировке UTF8
Значит у вас консоль в koi8r,
Значит у вас консоль в koi8r, поэтому и учитывается локаль клиента, куда происходит выгрузка.
Про миграцию от релиза к релизу написано здесь:
http://postgresql.ru.net/manual/install-upgrading.html
льзоваться инструкцией по ссылке.
У pg_dump есть ключик указания кодировки кстати.
попытаться изменить локаль клиента на UTF8 ?
>У pg_dump есть ключик указания кодировки кстати.
пробовал выставлять разные кодировки
--encoding=UTF8
--encoding=UNICODE
--encoding=KOI8R, --encoding=KOI8-R выдает ошибку: Error message from server: ERROR: character 0xe28496 of encoding "UTF8" has no equivalent in "KOI8"
Остальные, без изменений. Скачал скрипт с дампом на видовую машину, при просмотре выставил кодировку ANSI, и появились нормальные кириллические символы...
как быть ? попытаться изменить локаль клиента на UTF8 ??
Видимо да. Вообще-то есть
Видимо да.
Вообще-то есть команда SET CLIENT_ENCODING TO 'кодировка', которую можно дать серверу для приведение в соответствие кодировки сервера и кодировки клиента, но вот как исхитрится поставить её перед выподнением pg_dump?
Можно ещё попробовать непосредственно в конфиге сервера покрутить. Есть такой параметр client_encoding(кодировка), возможно это поможет.