Skeleta wrote:

Здравейте,

Имам два компютъра с Debian & PostgreSQL сървар, които малко се различават (единия е инсталиран 1-2 години по-рано). Въпреки че се старая да поддържам еднакви параметри, оказа се, че съм допуснал грешка.

На по-древната инсталация съм генерирал базата със стойности на променливите за описание на локализацията
LC_COLLATE:                           C
LC_CTYPE:                             C

а на по новия съответните стойности са:
LC_COLLATE:                           bg_BG.cp1251
LC_CTYPE:                             bg_BG.cp1251

Горните стойности ги дава утилитито pg_controldata.

Ефекта е, че на по новия (със bg_BG.cp1251) кирилицата не се сортира правилно.

В учебника пише, че тези стойности се задават при генериране на клъстера от бази и не могат да се сменят, а никаква друга разлика не виждам нито в конфирации, нито на друго място, и на двете места базите ми се дефинират с енкодинг SQL_ASCII.

Какви съвети ще ми дадете да си оправя сортирането ? Ще може ли да стане без пускане на нова инициализация на базите и ако не, как да го направя най-безопасно. Debian-а ми е sarge, postgresql е 7.4

   Скелета

Няма да стане без нова инициализация, имах подобен въпрос преди време и се убедих точно в това. Най безболезнено според мен ще е ако на си вдигнеш нова база (друга машина?) и с помоща на някакав софтуер (не мога да ти дам препоръка, досега винаги съм си правил сам такъв за прехвърляне на данните, структурата можеш лесно да я генерираш) да го прехвърлиш и после обратно на наново инициализираната база с pg_dump и pg_restore. Друга идея няма. Не е лесно но е начин.

Reply via email to