powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как правильно перенести данные
4 сообщений из 4, страница 1 из 1
Как правильно перенести данные
    #40080228
Фотография Cola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем при разработке меняется структура БД.
Делаю так: выгружаю из пользовательских таблиц данные в файлы, потом накатываю бекап из базы разработки, и восстанавливаю пользовательские таблицы из сохраненных в файлы. Но есть проблема - счетчики в "последовательностях"... Приходится в ручную выискивать и руками их выставлять. Как-то можно вместе с пользовательскими таблицами выгружать и восстанавливать последовательности? Или есть какой-то другой путь?
Всем за ранее благодарна за помощь.
...
Рейтинг: 0 / 0
Как правильно перенести данные
    #40080753
Фотография Cola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что, совсем нет вариантов?
...
Рейтинг: 0 / 0
Как правильно перенести данные
    #40080759
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pg_dump так делает.

Код: sql
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.
postgres=# create table t1(id serial,ss text);
CREATE TABLE
postgres=# \d t1
                            Table "public.t1"
 Column |  Type   | Collation | Nullable |            Default             
--------+---------+-----------+----------+--------------------------------
 id     | integer |           | not null | nextval('t1_id_seq'::regclass)
 ss     | text    |           |          | 

postgres=# insert into t1(ss) (select s.id::text from generate_series(1,5) as s(id));
INSERT 0 5
postgres=# select max(id) from t1;
 max 
-----
   5
(1 row)

root@af4b4d5535c9:/# pg_dump -d postgres -U postgres -t t1 > t1.txt
root@af4b4d5535c9:/# psql -d db1 -U postgres -f t1.txt 
SET
SET
SET
SET
SET
 set_config 
------------
 
(1 row)

SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
CREATE SEQUENCE
ALTER TABLE
ALTER SEQUENCE
ALTER TABLE
COPY 5
 setval 
--------
      5
(1 row)

root@af4b4d5535c9:/# psql -U postgres -d db1
psql (11.11 (Debian 11.11-1.pgdg90+1))
Type "help" for help.

db1=# select max(id) from t1;
 max 
-----
   5
(1 row)

db1=# insert into t1(ss) (select s.id::text from generate_series(1,5) as s(id));
INSERT 0 5
db1=# select max(id) from t1;
 max 
-----
  10
(1 row)



Код: sql
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.
root@af4b4d5535c9:/# cat t1.txt 
--
-- PostgreSQL database dump
--

-- Dumped from database version 11.11 (Debian 11.11-1.pgdg90+1)
-- Dumped by pg_dump version 11.11 (Debian 11.11-1.pgdg90+1)

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: t1; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.t1 (
    id integer NOT NULL,
    ss text
);


ALTER TABLE public.t1 OWNER TO postgres;

--
-- Name: t1_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE public.t1_id_seq
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.t1_id_seq OWNER TO postgres;

--
-- Name: t1_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE public.t1_id_seq OWNED BY public.t1.id;


--
-- Name: t1 id; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY public.t1 ALTER COLUMN id SET DEFAULT nextval('public.t1_id_seq'::regclass);


--
-- Data for Name: t1; Type: TABLE DATA; Schema: public; Owner: postgres
--

COPY public.t1 (id, ss) FROM stdin;
1	1
2	2
3	3
4	4
5	5
\.


--
-- Name: t1_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--

SELECT pg_catalog.setval('public.t1_id_seq', 5, true);  -------------------------  выставляет значение


--
-- PostgreSQL database dump complete
--
...
Рейтинг: 0 / 0
Как правильно перенести данные
    #40081607
Фотография Cola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya, спасибо! Разбираюсь...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как правильно перенести данные
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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