【发布时间】:2021-12-21 04:47:42
【问题描述】:
我们在 Hasura 遇到了一个奇怪的问题。我们在 postgres 数据库中添加了一个唯一键(通过 rails),当我们在 Hasura 中进行查询时,我们可以看到它就在那里
SELECT tablename, indexname, indexdef
FROM pg_indexes
WHERE tablename = 'customers';
customers customers_pkey CREATE UNIQUE INDEX customers_pkey ON public.customers USING btree (id)
customers customers_merchant_id_email_key CREATE UNIQUE INDEX customers_merchant_id_email_key ON public.customers USING btree (merchant_id, email)
但是当我们查看表格时,它什么也不显示并显示
**Unique Keys**
[Add] No unique keys
即使添加它(通过单击 [添加] 按钮)它也会说它存在
**Saving unique key failed**
postgres-error : relation "customers_merchant_id_email_key" already exists
此外,在使用约束对表执行“更新插入”时,它说它不存在。
mutation MyMutation {
insert_customers(
objects: {
email: "asdf@gmail.com",
merchant_id: "5792121d-4423-4a1e-8612-7fc090f2e71a",
first_name: "Foobar",
last_name: "Test"
},
on_conflict: {
constraint: customers_merchant_id_email_key,
update_columns: [first_name, last_name]
}
)
{
returning {
id
}
}
}
{
"errors": [
{
"extensions": {
"path": "$.selectionSet.insert_customers.args.objects",
"code": "constraint-error"
},
"message": "constraint \"customers_merchant_id_email_key\" for table \"customers\" does not exist"
}
]
}
我们错过了什么吗?
【问题讨论】:
-
哦。图片没有上传……很奇怪。
-
你得到了什么:
SELECT indexrelid::regclass, indisunique, indisvalid FROM pg_index WHERE indrelid = 'customers'::regclass; -
@LaurenzAlbe 我认为我得到了 2 个真值:
customers_merchant_id_email_key t t -
看起来像 Hasura 工具问题。
标签: psql hasura unique-index