我使用postgraphql自动生成的突变在postgres表的数据类型为UUID[]的列中使用graphql创建行。
然而,似乎没有一种方法可以用graphql保存这些UUID[]数据?这是graphql没有考虑到的数据类型,还是我错误地形成了数组?
当我在graphiql中创建行时:
mutation {
createJob(
input: {
user_ids: ["5b7323ac-e235-4edb-bbf9-97495d9a42a1"],
instructions: "Job Instructions",
publishedDate: "2017-06-07"}
}
)
}我得到以下错误:
"message": "column \"user_ids\" is of type uuid[] but expression is of type text[]"从技术上讲,UUID是否不像文本那样存储?我尝试了形成UUID数组的不同方法,但似乎都不起作用
发布于 2017-07-16 07:35:30
您可能可以通过创建隐式转换来解决此问题
CREATE CAST (text[] AS uuid[])
WITH INOUT
AS IMPLICIT ;PostgreSQL将自动完成从text[]到uuid[]的转换;这似乎是必需的步骤。
注意:上面的代码必须从“uuid[]或text[]类型的所有者”执行,这通常意味着:postgres或数据库所有者。
要检查它是否正常工作,您只需执行以下操作:
CREATE TABLE t
(
ids uuid[]
) ;
INSERT INTO t
(ids)
VALUES
(ARRAY['5b7323ac-e235-4edb-bbf9-97495d9a42a1','5b7323ac-e235-4edb-bbf9-97495d9a42a2']),
(ARRAY['6b7323ac-e235-4edb-bbf9-97495d9a42a1']) ;..。然后,使用GraphQL测试它
发布于 2017-08-09 21:49:07
这是PostGraphQL中的一个错误;它已在版本4(尚未发布,但您可以通过npm install postgraphql@next安装)中修复。
https://stackoverflow.com/questions/45123526
复制相似问题