来自 pgadmin4 的 PostgreSQL pg_restore 错误显示角色不存在

PostgreSQL pg_restore error from pgadmin4 showing role doesn't exist

我正在尝试使用 pgadmin 备份和恢复实用程序将数据库从一个模式恢复到 postgresql 中的另一个模式。 数据库 A 的备份成功,但是当我尝试将其还原到另一个 数据库 B 时,出现如下所示的错误。

有人知道这件事或以前遇到过这样的问题吗?

我尝试更改还原选项,例如

  1. 不要将所有者保存为是
  2. 特权是等,但仍然没有运气。

样本:

pg_restore: creating TABLE "public.app_role" pg_restore: [archiver (db)] Error from TOC entry 227; 1259 197811 TABLE app_role schedule pg_restore: [archiver (db)] could not execute query: ERROR: role "schedule" does not exist Command was: ALTER TABLE public.app_role OWNER TO schedule;

谢谢

在 PostgreSQL 中,用户和表空间不是数据库的一部分,因此它们不包含在 pg_dump 输出中。

您必须 运行 pg_dumpall -a 才能转储这些对象。先应用该转储,然后它应该可以工作。

或者,使用 pg_restore 的选项 -O -x 跳过恢复所有权和权限。然后对象将属于 运行 pg_restore.

的用户