如果不存在同名登录,则从转储中恢复 postgresql

如果不存在同名登录,则从转储中恢复 postgresql

在 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。

相关内容