Документация PostgresSQL повлияла на меня, чтобы использовать пользовательский формат. Я использую его в течение многих лет, и это, кажется, имеет различные преимущества, но YMMV. Тем не менее, вот то, что работает для меня:
pg_restore --no-owner --dbname postgres --create ~/Desktop/pg_dump
psql --dbname postgres -c 'ALTER DATABASE foodog_production RENAME TO foodog_development'
Там не было ни foodog_development foodog_production базы данных, существовавшие до последовательности.
Это восстанавливает базу данных из дампа (~/Desktop/pg_dump), который создаст его с именем, которое оно было сброшено как. Переименование называет БД тем, что вы хотите.
Возможно, вам не нужен владелец, если ваше имя пользователя одинаково на обеих машинах. В моем случае дамп выполнялся как user1, а восстановление выполнялось как user2. Новые объекты должны принадлежать пользователю2, а -no-owner достигает этого.
Боковое примечание. Возможно, лучше использовать один из двоичных дампов вместо обычного текста. Это ускорит процесс дампа/восстановления, уменьшит размер файла дампа и предоставит некоторые дополнительные способы управления процессом восстановления. Подробности ['here'] (http://www.postgresql.org/docs/current/static/app-pgdump.html) –