Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не могу перекодировать БД / 25 сообщений из 32, страница 1 из 2
28.07.2010, 15:49
    #36764277
Magister Yoda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
Здравствуйте!
есть БД под Денвером в WIN1251, мне надо UTF8 или SQL_ASCII. Подскажите как сконвертировать.
Пробовал создавать новую - пишет
Код: plaintext
1.
ERROR:  new encoding (UTF8) is incompatible with the encoding of the template database (WIN1251)
HINT:  Use the same encoding as in the template database, or use template0 as template.
Я сам в этом не разбираюсь, мне надо это для программы.
Заранее спасибо!
...
Рейтинг: 0 / 0
28.07.2010, 16:09
    #36764347
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
Сделайте полный дамп базы (pg_dumpall), пересоздайте пазу с необходимой локалью (курить маны для initdb) и залейте все в базу.
...
Рейтинг: 0 / 0
28.07.2010, 16:10
    #36764350
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
Warstoneпересоздайте пазу с необходимой локалью Пересоздайте кластер.
...
Рейтинг: 0 / 0
28.07.2010, 16:37
    #36764434
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
Magister YodaПробовал создавать новую - пишет
Код: plaintext
1.
ERROR:  new encoding (UTF8) is incompatible with the encoding of the template database (WIN1251)
HINT:  Use the same encoding as in the template database, or use template0 as template.

Код: plaintext
1.
ОШИБКА:  новая кодировка (UTF8) не совместима с кодировкой базы-шаблона (WIN1251)
ПОДСКАЗКА:  Используйте ту же кодировку что и у базы-шаблона, или используйте базу template0 в качестве базы-шаблона.
Понятно?

Magister Yoda, база-шаблон указывается в директиве TEMPLATE команды CREATE DATABASE, например:
Код: plaintext
create database asdf template template0;
...
Рейтинг: 0 / 0
28.07.2010, 16:43
    #36764453
Magister Yoda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
ЁшMagister Yoda, база-шаблон указывается в директиве TEMPLATE команды CREATE DATABASE, например:
Код: plaintext
create database asdf template template0;

вот у меня создалась БД asdf и как в ней изменить кодировку теперь?
...
Рейтинг: 0 / 0
28.07.2010, 16:55
    #36764477
Хость
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
А мануал почитать не судьба?

CREATE DATABASE name
[ [ WITH ] [ OWNER [=] dbowner ]
[ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
[ LC_COLLATE [=] lc_collate ]
[ LC_CTYPE [=] lc_ctype ]
[ TABLESPACE [=] tablespace ]
[ CONNECTION LIMIT [=] connlimit ] ]
...
Рейтинг: 0 / 0
28.07.2010, 17:53
    #36764640
Magister Yoda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
оставил только то что надо
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Ошибка SQL:

ERROR:  syntax error at or near "["
LINE  2 : [ [ WITH ] [ TEMPLATE [=] template1 ]
        ^
В операторе:
CREATE DATABASE asdf
[ [ WITH ] [ TEMPLATE [=] template1 ]
[ ENCODING [=] UTF8 ] ]

вот что пишет...
...
Рейтинг: 0 / 0
28.07.2010, 18:34
    #36764775
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
Magister Yodaвот что пишет...А-а-а... Эпик феил... Спасибо, я проржался. FVMas detected.
...
Рейтинг: 0 / 0
28.07.2010, 18:41
    #36764797
Magister Yoda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
перечитай первый пост. В нём ясно написано "Я сам в этом не разбираюсь, мне надо это для программы." и не зачем ржать, раз ты такой умный дак может помог бы лучше, чем флудить?
...
Рейтинг: 0 / 0
28.07.2010, 18:48
    #36764818
Magister Yoda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
итак базу создал...
Код: plaintext
CREATE DATABASE adfsdg WITH template=template0 encoding= 6 
но возникла проблемка, оказывается программа сама должна создавать базу, а она использует стандартные параметры, а следовательно и стандартный шаблон, в котором кодировка WIN1251.
вопрос такой - как изменить кодировку в стандартном шаблоне?
...
Рейтинг: 0 / 0
28.07.2010, 18:50
    #36764821
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
Ну не знать форму записи (кстати, кто автор-то?) команд - это все-равно что "Скажите а как поменять масло в двигателе Порша, я не прфессионал? ... Так-то... Ой, я-же говорил что я не профессионал! Так как открыть капот?"
...
Рейтинг: 0 / 0
28.07.2010, 18:52
    #36764830
Warstone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
Magister Yodaитак базу создал...
Код: plaintext
CREATE DATABASE adfsdg WITH template=template0 encoding= 6 
но возникла проблемка, оказывается программа сама должна создавать базу, а она использует стандартные параметры, а следовательно и стандартный шаблон, в котором кодировка WIN1251.
вопрос такой - как изменить кодировку в стандартном шаблоне?
Код: plaintext
CREATE DATABASE adfsdg WITH template=template0 encoding=UTF8
А потом выбирай клиентскую кодировку, какую хочешь. поможет тебе в этом SQL комманда
Код: plaintext
SET client_encoding='WIN1251';
допустим. Все последующие вопросы (а их сейчас будет тонна по типу: "А зачем client_encoding") - в ветку Работа.
...
Рейтинг: 0 / 0
28.07.2010, 18:53
    #36764832
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
Magister Yodaвопрос такой - как изменить кодировку в стандартном шаблоне?Пересоздать кластер, как писал Warstone
...
Рейтинг: 0 / 0
28.07.2010, 19:00
    #36764843
Magister Yoda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
уже почти понимаю :D
а как мне этот initdb запустить? и какие у него параметры?
...
Рейтинг: 0 / 0
28.07.2010, 19:05
    #36764854
Magister Yoda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
WarstoneА потом выбирай клиентскую кодировку, какую хочешь. поможет тебе в этом SQL комманда
Код: plaintext
SET client_encoding='WIN1251';
допустим. Все последующие вопросы (а их сейчас будет тонна по типу: "А зачем client_encoding") - в ветку Работа.
ну я её выбрал UTF8, но всё равно программа пишет что в стандартном шаблоне WIN1251
...
Рейтинг: 0 / 0
28.07.2010, 19:54
    #36764919
Magister Yoda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
в смысле выполнил этот запрос SET client_encoding='UTF8';
но всё равно стандартный шаблон остался WIN1251. как мне изменить его на другой?
...
Рейтинг: 0 / 0
28.07.2010, 21:50
    #36765036
Не могу перекодировать БД
Я заметил, раздел постгриса самый дружелюбный на данном форуме.
Все видят, что чел упорно не желает читать руководства.
Вместо того, чтобы отослать его читать мануалы - с маниакальным упорством помогают.
...
Рейтинг: 0 / 0
28.07.2010, 21:59
    #36765046
Magister Yoda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
Да как Вы понять не можете - мне данная операция единоразово нужна, больше она мне не понадобиться.
И кстати о "отослать читать мануалы" - форумы созданы для того чтобы задавать вопросы, а люди, которые знают ответы - отвечали им.
Я гуглил уже на эту тему - ничего не нашел. Точнее нашел - этот форум. И больше ничего конкретного. Поэтому решил задать этот вопрос здесь, чтобы умные люди помогли решить.
...
Рейтинг: 0 / 0
28.07.2010, 23:57
    #36765175
Не могу перекодировать БД
Magister Yoda, а тут ?
...
Рейтинг: 0 / 0
29.07.2010, 00:14
    #36765191
Magister Yoda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
смотрел гуглом
...
Рейтинг: 0 / 0
29.07.2010, 01:14
    #36765247
Не могу перекодировать БД
Magister Yodaсмотрел гуглом
Так ?
...
Рейтинг: 0 / 0
29.07.2010, 01:47
    #36765264
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
Magister Yodaуже почти понимаю :D
а как мне этот initdb запустить? и какие у него параметры?
возможно как-то так: initdb.exe -D с:\pg_base --locale=Russian_Russia --encoding=UTF8
...
Рейтинг: 0 / 0
29.07.2010, 03:38
    #36765285
Не могу перекодировать БД
У него не получится потому что он не знает где лежит бинарник initdb... я это уже чуствую и рыдаю крокодиловыми
слезами падсталом... Cохрани и спаси нас от таких админов и девелоперов. А ведь сегодня их поболе чем сами значете кого в общаге.
Маладой падаван, я те прямо скажу: если тебе дороги твое время и нервы остерегайся заниматься чем-то не читая документации.
Лучше уж стразу выпей йаду заплати кому следует да нехай нарисуют тебе базу и программу и дыдька лысого,
тем паче если это тебе нужно на один раз для отмазки. Благо сегодня фрилансеров есть и в Рунетах.
...
Рейтинг: 0 / 0
29.07.2010, 19:55
    #36767213
Magister Yoda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
Добрый Ленивец , извиняюсь за выражение, срать только анонимно умеем?
Ёш , благодарю, сейчас попробую.
P.S. где этот файл - я знаю.
...
Рейтинг: 0 / 0
29.07.2010, 20:15
    #36767238
Magister Yoda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу перекодировать БД
открыл командную строку нашел этот initdb.exe и запустил его с такими параметрами
Код: plaintext
1.
C:\WebServers\usr\local\pgsql- 8 . 4 \bin>initdb.exe -D C:\WebServers\usr\local\pgsq
l- 8 . 4 \data\ --locale=Russian_Russia --encoding=UTF8
вот что он написал
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
The files belonging to this database system will be owned by user "Администратор
".
This user must also own the server process.

The database cluster will be initialized with locale Russian_Russia.
The default text search configuration will be set to "russian".

fixing permissions on existing directory C:/WebServers/usr/local/pgsql- 8 . 4 /data
... ok
creating subdirectories ... ok
selecting default max_connections ...  100 
selecting default shared_buffers ... 32MB
creating configuration files ... ok
creating template1 database in C:/WebServers/usr/local/pgsql- 8 . 4 /data/base/ 1  ...
 ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... FATAL:  invalid byte sequence for enc
oding "UTF8": 0xc0e4
HINT:  This error can also happen if the byte sequence does not match the encodi
ng expected by the server, which is controlled by "client_encoding".
child process exited with exit code  1 
initdb: removing contents of data directory "C:/WebServers/usr/local/pgsql-8.4/d
ata"
что это за ошибка с UTF8 какая-то? в начале я заметил что файлы и папки появлялись, но потом всё удалилось.

попробовал с SQL_ASCII кодировкой - всё нормально создалось.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
The files belonging to this database system will be owned by user "Администратор
".
This user must also own the server process.

The database cluster will be initialized with locale Russian_Russia.
The default text search configuration will be set to "russian".

fixing permissions on existing directory C:/WebServers/usr/local/pgsql- 8 . 4 /data
... ok
creating subdirectories ... ok
selecting default max_connections ...  100 
selecting default shared_buffers ... 32MB
creating configuration files ... ok
creating template1 database in C:/WebServers/usr/local/pgsql- 8 . 4 /data/base/ 1  ...
 ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    "postgres" -D "C:/WebServers/usr/local/pgsql-8.4/data"
or
    "pg_ctl" -D "C:/WebServers/usr/local/pgsql-8.4/data" -l logfile start

подскажите в чем может быть проблема с UTF8?
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не могу перекодировать БД / 25 сообщений из 32, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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