最佳答案
我对不同服务器上的数据库进行了备份,它的作用与我需要的不同,使用以下命令:
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
我如何指定它,以便它将改变所有者? 或者这是不可能的吗?