Имя: Пароль:
1C
 
помогите с восстановлением архива postgres из файла с расширением sql
0 olo_lo1
 
14.08.18
10:11
Проверяю работу этого зверя Postgre SQL:

Саму базу сархивировал через отдельное приложение PostgreSQL Backup

выгрузился архивчик, при разархивировании файл sql

А как теперь его накатить не пойму
открыл консоль psql к postgres

пишу команду psql -U postgres -d myDb2 -f D:\arh.sql

ничего не происходит.
1 olo_lo1
 
14.08.18
10:29
ап
2 ildary
 
14.08.18
10:30
(0) а если попробовать для распаковки назад тот же самый PostgreSQL Backup?
3 Остап Сулейманович
 
14.08.18
10:32
(0) ИМХО sql - это не файл с данными. Это файл запроса. Что бы проверить - посмотри его обычным блокнотом.
4 olo_lo1
 
14.08.18
10:50
(3) обрадовали, спасибо.
а для чего тогда PostgreSQL Backup ?

(2) он файлы sql не загружает
5 arsik
 
гуру
14.08.18
10:54
6 ildary
 
14.08.18
11:00
(4) интересная получается софтина - файл SQL создает и на этом всё?
7 Остап Сулейманович
 
14.08.18
11:02
(6) Потом этот файл нужно скормить СУБД и получить результат выполнения. Исполняет запрос именно СУБД. А не сторонняя приблуда.
8 Фрэнки
 
14.08.18
11:05
Утилиты для дампа и рестора. Полностью совместимы с родными pg_dump & pg_restore. Freeware.http://microolap.com/products/database/pagodump/
http://microolap.com/products/database/pagorestore/

стащил с сайта Гилева :)
9 olo_lo1
 
14.08.18
11:49
(7)можете понятнее ответить, я так и не понял. PostgreSQL Backup - удалять на помойку ?
10 Владимир Милькин
 
14.08.18
12:08
pg_dump создаёт ту же самую выгрузку в формате sql, которую нужно затем выполнить в базе для восстановления данных.

Нюанс только в том, что выгрузка может быть plain (будет чистый sql) или custom (и похожие форматы), где тот же самый sql жмётся особым образом.

pg_restore нужно использовать, если у вас не plain формат. Она тогда разожмёт и уже сама выполнит (например, через psql) восстановление.

У вас похоже же plain формат. Поэтому сделайте, например, так:
- поставьте себе pgAdmin
- создайте чистую базу именно в нём, чтобы там не было никаких дополнительных типов от 1С в Casts
- и уже затем в чистой базе через psql выполняйте ваш архив, например, так:

psql --single-transaction --echo-errors --quiet --set="ON_ERROR_STOP=on" --file="BACKUP.sql" --dbname=postgresql://"USER":"PASSWORD"@"HOST:PORT"/"temp"

где BACKUP.sql полный путь до вашего архива, а temp - имя базы на сервере СУБД.

Для создания чистой базы можно обойтись без pgAdmin:
createdb --encoding=utf8 --template=template1 --username="USER" --host="HOST" --port=PORT temp
11 Владимир Милькин
 
14.08.18
12:09
Главное не восстанавливайте сразу в рабочую базу. Перед этим всё на копии, раз в первый раз.

Скорее всего PostgreSQL Backup под капотом тоже использует pg_dump и там могут быть нюансы. Например, если вы указали в нём пользователя СУБД с неполными правами на таблицы базы. Тогда выгрузка может оказаться вообще пустой.
12 МихаилМ
 
14.08.18
12:12
(11) он 9 месяцев не может разобраться в теме
восстановление бэкапа созданного в PostgreSQL Backup
13 Владимир Милькин
 
14.08.18
12:14
(0) напиши мне на [email protected], выясним подробности, я объясню и подскажу разные варианты, совсем недавно разбирался с этой темой для себя