【问题标题】:Hasura unique index not displayed / not foundHasura 唯一索引未显示/未找到
【发布时间】: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


【解决方案1】:

我遇到了同样的问题,我创建了一个具有唯一索引的新实体:

CREATE UNIQUE INDEX UNIQ_92FB68E19B88AF9 ON device (fcm_token)

但不幸的是,在 Hasura 控制台中,索引没有出现:

但与您相比,我可以手动添加索引而不会出错。所以我决定添加它并导出我的元数据以保存更改。但是索引永远不会导出......我的 table.yaml 中没有新内容。

所以我无法进行任何 upsert 查询...并且手动添加索引对于我的部署过程来说非常不舒服。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多