Клон базы данных 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

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

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

1 ответ

Решение

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

-d dbname

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

но!

--Создайте

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

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

так удали -C от pg_restore аргументы...

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

Другие вопросы по тегам