powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / win1251 в unix
7 сообщений из 7, страница 1 из 1
win1251 в unix
    #38484864
bivilbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть кластер под виндой в кодировке win1251. По ряду причин решили перейти на unix .Но появилась проблема с кодировкой базы при миграции. Много уже чего погуглил так и не нашел внятного решения.
Как на unix(debian \ centos) создать кластер в win1251 для миграции из винды?
Конфига серва минимальная - ssh, apache, php, posthresql 9.2.
Мучался и на дебе и на центосе..
Спасибо
...
Рейтинг: 0 / 0
win1251 в unix
    #38485152
Weed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bivilbi, даю совет, но сам никогда не сталкивался.

Скорее всего, нужна локаль cp1251. сделайте

$ locale --all

и посмотрите есть ли она у вас.

Потом посмотрите в дамп БД - выставляется ли там кодировка при создании схемы базы или нет? Если да то какая?

Ещё, я бы задумался о переводе данных в utf8 - utf8 неизбежен. :)
...
Рейтинг: 0 / 0
win1251 в unix
    #38485247
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создайте кластер в кодировке utf8. мигрируйте базу через pg_dumpall.
...
Рейтинг: 0 / 0
win1251 в unix
    #38485444
bivilbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeXa NalBatсоздайте кластер в кодировке utf8. мигрируйте базу через pg_dumpall.
Спасибо за ответ
А можно поподробнее?
...
Рейтинг: 0 / 0
win1251 в unix
    #38485445
bivilbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeXa NalBatсоздайте кластер в кодировке utf8. мигрируйте базу через pg_dumpall.
Как такой "хитрый" дамп можно сделать из 1251 в utf-8?
...
Рейтинг: 0 / 0
win1251 в unix
    #38485617
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bivilbiКак такой "хитрый" дамп можно сделать из 1251 в utf-8? 22.3. Character Set Support

кодировка у сервера и клиента может быть разной
show server_encoding;
show client_encoding;

дамп в текстовом виде, кодировка указана внутри. pg_dump lexa
Код: 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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
--
-- PostgreSQL database dump
--

SET statement_timeout = 0;
 SET client_encoding = 'UTF8'; 
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;

--
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: 
--

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;


--
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: 
--

COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';


SET search_path = public, pg_catalog;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: test; Type: TABLE; Schema: public; Owner: lexa; Tablespace: 
--

CREATE TABLE test (
    id integer NOT NULL,
    name text
);


ALTER TABLE public.test OWNER TO lexa;

--
-- Name: test_id_seq; Type: SEQUENCE; Schema: public; Owner: lexa
--

CREATE SEQUENCE test_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.test_id_seq OWNER TO lexa;

--
-- Name: test_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: lexa
--

ALTER SEQUENCE test_id_seq OWNED BY test.id;


--
-- Name: id; Type: DEFAULT; Schema: public; Owner: lexa
--

ALTER TABLE ONLY test ALTER COLUMN id SET DEFAULT nextval('test_id_seq'::regclass);


--
-- Data for Name: test; Type: TABLE DATA; Schema: public; Owner: lexa
--

COPY test (id, name) FROM stdin;
1	foo
2	bar
\.


--
-- Name: test_id_seq; Type: SEQUENCE SET; Schema: public; Owner: lexa
--

SELECT pg_catalog.setval('test_id_seq', 2, true);


--
-- Name: test_pkey; Type: CONSTRAINT; Schema: public; Owner: lexa; Tablespace: 
--

ALTER TABLE ONLY test
    ADD CONSTRAINT test_pkey PRIMARY KEY (id);


--
-- Name: public; Type: ACL; Schema: -; Owner: postgres
--

REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON SCHEMA public FROM postgres;
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO PUBLIC;


--
-- PostgreSQL database dump complete
--

не обязательно из базы 1251 делать дамп в кодировке utf8. можно и наоборот, дамп в кодировке 1251 загрузить в базу utf8.
...
Рейтинг: 0 / 0
win1251 в unix
    #38499506
bivilbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решение найдено
1. Установить локаль 1251
dpkg-reconfigure locales
2. Создать базу с кодировкой 1251
3. В базе выполнить
ALTER DATABASE *** SET client_encoding='win1251';
ALTER DATABASE *** SET DateStyle='iso, dmy';
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / win1251 в unix
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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