0

如何pg_dumpall与 Heroku 一起使用?Heroku 的默认“数据库备份”功能是pg_dump单击一个按钮,该按钮不包括角色,所以我想做pg_dumpall......我正在尝试pg_dumpall -h myherokuurl.compute-1.amazonaws.com -l mypassword -U myUser > dump.sql

我收到此错误:

pg_dumpall: error: query failed: ERROR:  permission denied for table pg_authid
pg_dumpall: error: query was: SELECT oid, rolname, rolsuper, rolinherit, rolcreaterole, rolcreatedb, rolcanlogin, rolconnlimit, rolpassword, rolvaliduntil, rolreplication, rolbypassrls, pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment, rolname = current_user AS is_current_user FROM pg_authid WHERE rolname !~ '^pg_' ORDER BY 2

我的第一个想法是创建一个具有正确权限的新用户。所以,我使用登录heroku pg:psql DATABASE -a my-app-name然后尝试create user myUser with password 'mypassword'但得到了错误ERROR: permission denied to create role

老实说,我不确定发生了什么,我只是在猜测。任何故障排除想法将不胜感激!(与此同时,我只是想了解更多关于 Postgres 的信息)

4

1 回答 1

1

如果您的问题只是关于pg_authid目录,您应该能够使用pg_dumpall带有--no-role-passwords 选项的最新版本。

这通常适用于无法访问的托管环境pg_authid,例如在 AWS 上。唯一的缺点是转储中会丢失 Postgres 用户的密码。

但是,您似乎有一个更有限的、可能是共享的环境,您甚至无法创建新的 Postgres 用户。我不确定是否有机会在那里pg_dumpall工作。

于 2021-12-01T15:17:27.833 回答