我们正在使用Gem PaperTrail,因此在postgres中有一个名为xxx.versions
的表。
通过本地的rails控制台,我们试图通过PaperTrail对象查询数据库:PaperTrail::Version.first
PG::权限不足:错误:关系版本的权限被拒绝
:按“版本”顺序从“版本”中选择“版本”。“id”ASC LIMIT 1
但如果我这样进入桌子:
ActiveRecord::Base.connection.execute("SELECT * FROM xxx.versions limit 1")
返回一个记录集。
只有当我们尝试从本地机器连接到数据库时,才会发生这种情况。
如果我在其中一个qa服务器上的rails控制台上运行
PaperTrail::Version.first
,它就可以正常连接。其他故障排除详细信息:
我使用了与qa服务器相同的凭据,并收到了
同样的结果。
在本地计算机上,我可以从
DataGrip/pgadmin在rails项目之外很好。
最佳答案
有几种可能性:
两次尝试都使用不同的PostgreSQL用户或数据库。
在versions
上xxx
之前的另一个模式中存在不同的关系search_path
。