来自 pgadmin4 的 PostgreSQL pg_restore 错误显示角色不存在
PostgreSQL pg_restore error from pgadmin4 showing role doesn't exist
我正在尝试使用 pgadmin 备份和恢复实用程序将数据库从一个模式恢复到 postgresql 中的另一个模式。 数据库 A 的备份成功,但是当我尝试将其还原到另一个 数据库 B 时,出现如下所示的错误。
有人知道这件事或以前遇到过这样的问题吗?
我尝试更改还原选项,例如
- 不要将所有者保存为是
- 特权是等,但仍然没有运气。
样本:
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
.
的用户
我正在尝试使用 pgadmin 备份和恢复实用程序将数据库从一个模式恢复到 postgresql 中的另一个模式。 数据库 A 的备份成功,但是当我尝试将其还原到另一个 数据库 B 时,出现如下所示的错误。
有人知道这件事或以前遇到过这样的问题吗?
我尝试更改还原选项,例如
- 不要将所有者保存为是
- 特权是等,但仍然没有运气。
样本:
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
.