клон базы данных postgres с новым именем - PullRequest
0 голосов
/ 09 мая 2018

У меня есть users-production база данных на 157.157.35.333

Я хотел бы клонировать ее на другой хост, как users-sandbox

, вот что я попробовал:

    PRODUCTION_HOST=111.111.11.111
    SANDBOX_HOST=222.222.22.222

    echo "creating db on sanbox"
    psql -h ${SANDBOX_HOST} -U postgres  -c "CREATE DATABASE \"users-sandbox\";"

    pg_dump -h ${PRODUCTION_HOST} -U postgres  -d users-production -F c -b -v  | \
       pg_restore -C -c -h ${SANDBOX_HOST} -U postgres  -d users-sandbox -v

но это создает базу данных со старым именем

как мне создать новое имя?

1 Ответ

0 голосов
/ 09 мая 2018

https://www.postgresql.org/docs/current/static/app-pgrestore.html

-d dbname

Подключиться к базе данных dbname и восстановить непосредственно в базе данных.

но!

-C

- create

Создать базу данных перед ее восстановлением.Если также указан параметр --clean, удалите и заново создайте целевую базу данных, прежде чем подключаться к ней.

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

, поэтому удалите -C из pg_restore arguments ...

(форматирование цитат мое)

...