我使用以下命令在不同服务器上的数据库上执行备份,该服务器的角色与我需要的不同:
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
我如何指定它才能更改所有者?或者这是不可能的?