Клон базы данных 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
аргументы...
(форматирование цитат мое)