问题标签 [postgraphile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 查询中的 Graphql 条件变量
我希望完全省略我不使用的变量以避免错误,例如"Variable "$eventId" got invalid value ""; Int cannot represent non-integer value: "
以这个查询为例:
现在我假设这个查询可以正常工作,但过滤的 eventId 部分将被完全忽略。
有没有办法用graphQL和postgraphile解决这个问题
这是我当前的解决方案,无需考虑,我只需要它现在就可以工作:
graphql - PostGraphile - exportGqlSchemaPath 将主 uuid 列从 id 重命名为 rowId?
我是 GraphQL 的新手,我使用 Relay 作为我的客户端,使用 PostGraphile 作为我的模式生成器。我的数据库基于这个PostgreSQL Schema Design。
我的表是人员、帖子和图像,主键是一个名为id
uuid 类型的列。
当 PostGraphile 生成我的模式时,它将 id 列重命名为rowId
并保留该id
列,但使用不同类型的随机键,可能是所有表中唯一的记录 id。
我应该重命名我所有的主要 uuid 列person_id、post_id、image_id等等吗?或者有没有办法改变 exportGqlSchemaPath 处理 id 的方式?
postgraphile - graphql-shield 作为 Postgraphile 中的“makeProcessSchemaPlugin”
尝试过 postgrphile 示例,但不确定在哪里出错?
我正在尝试将 graphql-shield 实现为插件
权限.ts
我将 middlewarePlugin 作为 postgraphile 中的其他插件导入:
崩溃日志:
| 构建初始架构时发生严重错误。退出是因为
retryOnInitFail
未设置。错误详情:graphql | 图ql | 类型错误:无法读取未定义 graphql 的属性“片段”| 在 isMiddlewareWithFragment (/home/node/app/node_modules/graphql-middleware/src/utils.ts:25:17) graphql | 在 Object.isMiddlewareFunction (/home/node/app/node_modules/graphql-middleware/src/utils.ts:33:10) graphql | 在 Object.validateMiddleware (/home/node/app/node_modules/graphql-middleware/src/validation.ts:9:7) graphql | 在 addMiddlewareToSchema (/home/node/app/node_modules/graphql-middleware/src/middleware.ts:33:27) graphql | 在 normalisedMiddlewares.reduceRight.schema.schema (/home/node/app/node_modules/graphql-middleware/src/middleware.ts:91:11) graphql | 在阵列。reduceRight() 在 applyMiddlewareWithOptions (/home/node/app/node_modules/graphql-middleware/src/middleware.ts:80:77) graphql | 在 applyMiddleware (/home/node/app/node_modules/graphql-middleware/src/middleware.ts:132:10) graphql | 在钩子 (/home/node/app/resolvers/test.resolver.ts:254:16) graphql | 在 SchemaBuilder.applyHooks (/home/node/app/node_modules/graphile-build/src/SchemaBuilder.js:398:20)
postgresql - 如何配置简单订阅以使用 Postgraphile CLI 运行?
我想将订阅添加到我拥有的 react 项目中,该项目当前使用通过运行 postgraphile 创建的端口 5000 端点引用 graphql。我使用全局安装(通过 npm -g postgraphile)postgraphile 的命令行启动来启动它。这工作正常。
通过文档(https://www.graphile.org/postgraphile/subscriptions/)我看到我应该能够通过 CLI 启用订阅:- https://www.graphile.org/postgraphile/subscriptions/#enabling -with-the-cli-1
但是,当我运行此程序时,出现错误:-“错误:找不到模块'--simple-subscriptions' ”
我不确定这是否与 pg-pubsub 有关。当我在全球范围内安装 postgraphile 时,我对 pg-pubsub 做了同样的事情。因此,而不是:-
postgraphile --plugins @graphile/pg-pubsub --subscriptions --simple-subscriptions 等
我有:-
postgraphile --plugins pg-pubsub --subscriptions --simple-subscriptions 等
但是我知道它可以使用“-append-plugins MySubscriptionPlugin.js”运行插件,而不是简单订阅启动服务器时列出“(启用订阅)”。
有没有人设法通过 CLI 运行简单的订阅?
file-upload - 找不到模块“postgraphile 插件上传字段”
我安装了 postgraphile-plugin-upload-field
npm i graphile-contrib/postgraphile-plugin-upload-field
然后
postgraphile -c 'postgres://postgres:mysecretpass@192.168.38.4:5432/gimapp' --cors -p 5001 --enhance-graphiql --host "0.0.0.0" -s messages,basic_auth,user --append-plugins @graphile/postgis,@graphile-contrib/pg-simplify-inflector,postgraphile-plugin-connection-filter,@graphile-contrib/postgraphile-plugin-upload-field --watch --no-ignore-indexes --jwt-token-identifier basic_auth.jwt_token --jwt-secret mysecretpass
像这样抛出异常。
如果我删除@graphile-contrib,这是另一种情况
postgraphile -c 'postgres://postgres:mysecretpass@192.168.38.4:5432/gimapp' --cors -p 5001 --enhance-graphiql --host "0.0.0.0" -s messages,basic_auth,user --append-plugins @graphile/postgis,@graphile-contrib/pg-simplify-inflector,postgraphile-plugin-connection-filter,postgraphile-plugin-upload-field --watch --no-ignore-indexes --jwt-token-identifier basic_auth.jwt_token --jwt-secret mysecretpass
这是错误:
graphql - Postgraphile error while trying to open UI
When I try to open postgraphile UI it's not working. I'm getting the following error.
A serious error occurred when building the initial schema. Exiting because
retryOnInitFail
is not set.Error: Connection terminated unexpectedly
at Connection. (D:\cars-assignment\node_modules\pg\lib\client.js:132:73)
at Object.onceWrapper (events.js:421:28)
at Connection.emit (events.js:315:20)
at Socket. (D:\cars-assignment\node_modules\pg\lib\connection.js:108:12)
at Socket.emit (events.js:327:22)
at endReadableNT (_stream_readable.js:1201:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21)
I'm using the following command
npx postgraphile -c postgres://username:SECRET@localhost:5000/db
How to resolve this issue?
postgresql - PostgreSQL - 返回“是我的”布尔值的计算列
一般来说,我是 pg 和 dbs 的新手。我找到了一个博客数据库样板,我正在尝试添加一些计算列来返回布尔值,以确定 currentPerson(经过身份验证的用户)是否是帖子的作者。基本上,posts 表中的一个虚拟列对于每个帖子都有一个 true 或 false 来判断 currentPerson 是否创作了它。
此函数返回 currentPerson:
所以,我想做类似下面的事情,但这是不正确的。这在 graphiql 中显示为一个突变(我正在使用 postgraphile 来生成我的模式)。
任何关于如何在帖子表中创建isMyPost
布尔计算列的提示都会很棒。
sequelize.js - 如何使用`selectGraphQLResultFromTable` 在后图形解析器中加载 Sequelize 查询的关系?
我的数据库中有几个相关的表:
rooms
桌子:
houses
桌子:
在我的项目中,我使用 PostGraphile (graphile-utils) 作为我的 GraphQL 提供程序。
rooms
我创建了一个自定义解析器来使用 Sequelize执行动态构建的复杂查询。我选择通过 Sequelize 而不是直接通过 PostGraphile 查询数据库,因为查询对象的各个部分是动态构建的(where
对象和include
数组)。
解析器如下所示:
此查询有效,但现在无法为房间加载关系,因此我无法house
通过相关过滤房间进行查询:
结果是
在 PostGraphile 文档中,我找到了selectGraphQLResultFromTable
似乎加载关系的方法,但我不确定如何将它与 Sequelize 查询结合使用;也就是说,我的解析器如何仅返回我通过 Sequelize 过滤的房间,其格式可以查询它们的关系(如上面的示例)?