在 serverA 上,我有一个带有用户 user_a 的 postgresql 数据库。我已将其转储:
pg_dump postgres > db1.bak
在 serverB 上,我有一个包含用户 user_b 的数据库。我尝试从 serverA 上的转储中恢复数据库,但失败了:
psql my_db < db1.bak
psql: FATAL: role "user_b" does not exist
我真的必须在 serverB 上创建 user_a 吗?我想避免这种情况,因为在 serverB 上我只想有 user_b。
有针对这个的解决方法吗?
答案1
我将使用一个常见的用户名来担任备份角色。
想象一下如果有一天你得到了 serverC......
答案2
您可以创建 user_a 仅用于导入,执行导入,将导入数据库的所有者更改为 user_b,然后删除 user_a。