2016-07-06 5 views
0

У меня есть небольшой подмножество нашего db как свалка для тестирования интеграции. Я восстановить его с помощью этой команды:Восстановление базы данных PostgreSQL?

pg_restore --no-acl --no-owner --verbose --create -h localhost -p 5435 -j 4 -U $PG_USER -d test latest.dump 

Проблема заключается в том, что в журналах я вижу:

pg_restore: connecting to database for restore 
pg_restore: processing item 5308 ENCODING ENCODING 
pg_restore: processing item 5309 STDSTRINGS STDSTRINGS 
pg_restore: processing item 5310 DATABASE dlq8aimf0q2pf 
pg_restore: creating DATABASE dlq8aimf0q2pf 
pg_restore: connecting to new database "dlq8aimf0q2pf" 
pg_restore: connecting to database "dlq8aimf0q2pf" as user "postgres" 

Как вы могли видеть, он пытается создать «dlq8aimf0q2pf» не «тест», как я указал. Могу ли я получить имя базы данных? Что такое ENV var использует это имя?

ответ

0

Как сказано в pg_restore doc о возможности --create:

Когда эта опция используется, то база данных с именем с -d используется только для выдачи начальной DROP DATABASE и команды CREATE DATABASE. Все данные восстанавливаются в имя базы данных , которое появляется в архиве.

Если у вас есть существующая база данных test и хотите восстановить в него, не используйте --create.

Смежные вопросы