клонировать базу данных postgres с новым именем

У меня есть база данных 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

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

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


person dina    schedule 09.05.2018    source источник
comment
к сожалению нет..   -  person dina    schedule 09.05.2018


Ответы (1)


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

-d имя_бд

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

но!

-C

--Создайте

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

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

поэтому удалите -C из pg_restore аргументов...

(форматирование кавычек мое)

person Vao Tsun    schedule 09.05.2018