恢复postgres数据库备份时出错

时间:2010-10-21 15:52:16

标签: ruby-on-rails postgresql amazon-s3 heroku

我已经设置了一个系统,可以从我的Heroku部署的rails应用程序中自动下载和存储数据库转储。一切都工作得很好但是当我下载转储并将其恢复到我的本地postgres服务器然后尝试从恢复的数据库运行我的本地应用程序我得到此错误

ActiveRecord::StatementInvalid in HomeController#index

PGError: ERROR:  permission denied for relation users : SELECT     "users".* FROM       "users"  WHERE     ("users"."id" = 1) LIMIT 1

有人对这可能有什么建议吗?我检查了我的postgres权限,所有表和数据库本身都属于postgres用户。我也试过GRANT ALL但没有成功。

2 个答案:

答案 0 :(得分:2)

浏览pgdump.sql个文件,并在每个CREATE TABLE语句后删除行,如下所示:

ALTER TABLE public.users OWNER TO eqrunyvndu;

然后从中运行恢复,它应该工作。这些行将表的所有者更改为您的heroku应用程序的自动生成的db用户名,这在本地没有意义,因此您可以删除它们。

我还建议greping该用户名的任何其他事件并删除它们。

答案 1 :(得分:0)

您使用的PostgreSQL用户很可能与该表的所有者不同。 我想你在这个数据库和这个数据库上有不同的用户?