0

我不相信这有什么大不了的,但我的 GraphIQL 从我的 PSQL 模式生成所有查询和突变。对于我可以直接在我的项目中使用的每个更改,是否可以为我提供一个通用文件?由于目前我必须手动编写我的查询/突变,如下所示,并且我经常更改架构,然后必须更新我的所有实例。

export const UPDATE = gql`
  mutation updateOrganiserByOrganiserId(
    $organiserName: String!
    $address: String
    $address2: String
    $city: String
    $country: String
    $postCode: String
    $manufacturerId: Int
    $organiserId: Int!
    $competitionSystemId: Int!
  ) {
    updateOrganiserByOrganiserId(
      input: {
        clientMutationId: "updateOrganisation"
        organiserId: $organiserId
        organiserPatch: {
          organiserName: $organiserName
          address: $address
          address2: $address2
          city: $city
          country: $country
          postCode: $postCode
          manufacturerId: $manufacturerId
          competitionSystemId: $competitionSystemId
        }
      }
    ) {
      clientMutationId
    }
  }
`
4

1 回答 1

1

不,没有办法做到这一点。

我经常改变架构

那是你的实际问题。您的架构应该是不可变的,并且只能扩展但永远不会更改。来自GraphQL 关于版本控制的最佳实践:“可以通过新类型和这些类型上的新字段添加新功能,而不会造成重大更改。这导致了始终避免重大更改并提供无版本 API 的常见做法。

因此,即使您的 Postgres 数据库架构发生更改,也要保持您的 GraphQL 架构相同(或向其中添加新字段),以便您的突变继续工作。Postgraphile 提供了大量工具(重命名字段、弃用注释、计算字段……)来支持这一点。

于 2020-12-25T21:11:06.807 回答