Имя: Пароль:
1C
1С v8
Резервирование и восстановление базы PostgreSQL
0 Sиlьver
 
23.04.19
13:59
Добрый день. Наверняка кто-то сталкивался с такой проблемой.

1.Делаю резервирование базы через скрипт
SET PGPASSWORD=pass
SET PGUSER=postgres
SET PGDATABASE=new_base

"C:\Program Files\PostgreSQL\9.6.7-1.1C\bin\pg_dump.exe" --host localhost --port 5432 --role "postgres" --no-password --format custom --blobs --section pre-data --section data --section post-data --encoding UTF8  --file "D:\backup\%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%.backup"

2. Создаю пустую базу в pgAdmin
3. Восстанавливаю в эту базу через pgAdmin резервную копию
C:\Program Files (x86)\pgAdmin 4\v4\runtime\pg_restore.exe --host "localhost" --port "5432" --username "postgres" --no-password --dbname "new_base_restore" --verbose "D:\\backup\\2019-0~4.BAC"

В результате база восстанавливается и работает, но в процессе восстановления есть ошибка:

pg_restore: connecting to database for restore
pg_restore: creating SCHEMA "public"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 4; 2615 2200 SCHEMA public postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  schema "public" already exists
    Command was: CREATE SCHEMA public;

Хотелось бы понять, что я делаю не так.
1 Nyoko
 
23.04.19
14:18
dropdb -U postgres new_base_restore && \
pg_restore --create --dbname=postgres --username=postgres pg_backup.dump
2 Sиlьver
 
23.04.19
14:28
(1) А вы можете привести полный текст скрипта? Вы у себя его используете?
3 Sиlьver
 
24.04.19
08:51
up
4 stix2010
 
24.04.19
09:15
(3) все описано в (2), с версии 9.1 такое поведение,  https://switch-case.ru/72731818
5 Sиlьver
 
25.04.19
10:57
Спасибо, все получилось. База восстанавливается в базу с тем же именем, что и база-источник бекапа.
А есть ли варианты восстановить в отдельную базу?
6 bolero
 
25.04.19
15:00
(5) а man к команде почитать не?


       -d dbname
       --dbname=dbname
           Connect to database dbname and restore directly into the database.