如果具有相同名称的login名不存在,则从转储中恢复postgresql

在服务器上我有一个用户user_a postgresql数据库。 我已经做了一个转储:

pg_dump postgres > db1.bak 

在服务器B我有一个用户user_b数据库。 我试图从服务器A上的转储恢复数据库,并失败:

  psql my_db < db1.bak psql: FATAL: role "user_b" does not exist 

我真的必须在serverB上创builduser_a吗? 我想避免这种情况,因为在serverB上我只想拥有user_b。

有针对这个的解决方法吗?

我将使用一个共同的用户名作为备份angular色。

想象一下,如果有一天你得到了serverC …

您可以创build用于导入的user_a,执行导入,将导入的数据库的所有者更改为user_b,然后删除user_a。