я сделал резервную копию на базы данных на другом сервере и имеет другую роль, чем мне нужно, с помощью этой команды:Postgresql - резервная база данных и восстановление на разных владельцев?
pg_dump -Fc db_name -f db_name.dump
Затем я скопировал резервную копию на другой сервер, где мне нужно, чтобы восстановить базу данных, но нет таких владелец, который использовался для этой базы данных. Пусть говорят, что база данных имеет владельца owner1
, но на другом сервере у меня есть только owner2
, и мне нужно восстановить эту базу данных и сменить владельца.
То, что я сделал на другом сервере при восстановлении:
createdb -p 5433 -T template0 db_name
pg_restore -p 5433 --role=owner2 -d db_name db_name.dump
Но когда восстановление выполняется я получаю эти ошибки:
pg_restore: [archiver (db)] could not execute query: ERROR: role "owner1" does not exist
Как я могу указать это так, это изменило бы владелец? Или это невозможно?
'pg_dump --no-owner' должны также сделать это –
Я предпочитаю, чтобы отложить эти рода решения до момента восстановления. Если вы сделаете это на стадии сброса, значит, вы не можете изменить свое мнение, не делая экспорт. Выполнение этого при восстановлении означает, что параметры остаются открытыми, если вы решите, что действительно хотите создать эту пропущенную роль и т. Д. – Gary
Итак, если я хочу изменить владельца, я должен сделать резервную копию без владельца? Потому что я думал, что смогу изменить владельца при восстановлении. Но даже установив '--role' на другого владельца, он все еще пытался использовать оригинального владельца (но тогда я не использовал' -no-owner'. – Andrius