在使用DBeaver添加列时,Hasura(Graphql)控制台显示PostgreSQL数据库中不存在该列。

7

我刚刚通过DBeaver测试修改了PostgreSQL数据库中的一张表,但当从Hasura(Graphql)控制台查看数据时,似乎已经破坏了数据库。我只是从Dbeaver添加了一个列。在Hasura中,我收到了“不存在此列”的错误信息。有人知道为什么吗?或者我该如何修复它?


你能展示一下你修改那个表的SQL语句吗?你认为是什么原因导致了数据库出错?在你的PostgreSQL服务器日志中有没有任何错误信息?是的,看起来Hasura正在寻找一个不存在的列。如果你知道是哪一列,你可以创建该列。 - Frank Heikens
感谢@FrankHeikens。这是控制台中元数据的冲突。 - virtualbis
3个回答

11

Hasura的支持帮助我将问题定位到存储在GraphQL控制台中的元数据。希望这可以帮助其他人节省一些时间。

如果您在外部更改了数据库的DDL,并且使用Hasura,您必须手动重新加载Hasura元数据,以便Hasura知道某些内容已经更改并相应地适应这些更改。您可以通过在控制台右上角点击设置图标来重新加载元数据。


1
不要忘记为除“管理员”以外的角色添加新列的权限。 - Alex Yu
3
我还需要勾选“重新加载所有数据库”。 - altschuler

2

您需要更新元数据,从控制台操作如下:

hasura metadata reload

1
你需要重新加载元数据,这样Hasura才知道新数据已经被添加了。点击齿轮图标 > 重新加载元数据 > 重新加载。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接