Prisma не генерирует поле в WhereInput для массива строк

#graphql #prisma-graphql

#graphql #prisma-graphql

Вопрос:

Я использую GraphQL, вероятно, около 8 месяцев. Я никогда раньше не сталкивался с подобной проблемой. Когда я вношу изменения в свою модель данных и запускаю команду, которая генерирует файл prisma. У меня есть существующее поле в таблице, тип которого представляет собой массив строк, так languages:[String!] что . Однако в моем сгенерированном файле prisma я не вижу опции для запроса languages в моей таблице.

Проблема не в том, что prisma не генерирует обновление файла. Я удалил его, и он генерирует то же самое. Кроме того, languages присутствует в других сгенерированных типах, только не в ItemDescriptionWhereInput (имя таблицы — ItemDescription). Наконец, это поле в настоящее время используется, я обновил это поле в своем API, и оно работает нормально. Похоже, это проблема prisma, а не что-то связанное с моим кодом.

Вот моя таблица описания элементов:

 type ItemDescription {
    id: ID! @unique
    item: ItemData! @relation(name: "ItemDescriptionToItemData")
    languages: [String!]
    description: String
    shootDates: String
    location: String
    productionCompany: String
    assetSource: String
    assetUsageMotion: String
    assetUsageStill: String
    talentUsage: String
    earliestStart: String
    earliestEnd: String
    generalNotes: String
}
  

Вот ввод Where, который генерируется prisma, обратите внимание на отсутствие languages здесь:

 input ItemDescriptionWhereInput {
  """Logical AND on all given filters."""
  AND: [ItemDescriptionWhereInput!]

  """Logical OR on all given filters."""
  OR: [ItemDescriptionWhereInput!]

  """Logical NOT on all given filters combined by AND."""
  NOT: [ItemDescriptionWhereInput!]
  id: ID

  """All values that are not equal to given value."""
  id_not: ID

  """All values that are contained in given list."""
  id_in: [ID!]

  """All values that are not contained in given list."""
  id_not_in: [ID!]

  """All values less than the given value."""
  id_lt: ID

  """All values less than or equal the given value."""
  id_lte: ID

  """All values greater than the given value."""
  id_gt: ID

  """All values greater than or equal the given value."""
  id_gte: ID

  """All values containing the given string."""
  id_contains: ID

  """All values not containing the given string."""
  id_not_contains: ID

  """All values starting with the given string."""
  id_starts_with: ID

  """All values not starting with the given string."""
  id_not_starts_with: ID

  """All values ending with the given string."""
  id_ends_with: ID

  """All values not ending with the given string."""
  id_not_ends_with: ID
  description: String

  """All values that are not equal to given value."""
  description_not: String

  """All values that are contained in given list."""
  description_in: [String!]

  """All values that are not contained in given list."""
  description_not_in: [String!]

  """All values less than the given value."""
  description_lt: String

  """All values less than or equal the given value."""
  description_lte: String

  """All values greater than the given value."""
  description_gt: String

  """All values greater than or equal the given value."""
  description_gte: String

  """All values containing the given string."""
  description_contains: String

  """All values not containing the given string."""
  description_not_contains: String

  """All values starting with the given string."""
  description_starts_with: String

  """All values not starting with the given string."""
  description_not_starts_with: String

  """All values ending with the given string."""
  description_ends_with: String

  """All values not ending with the given string."""
  description_not_ends_with: String
  shootDates: String

  """All values that are not equal to given value."""
  shootDates_not: String

  """All values that are contained in given list."""
  shootDates_in: [String!]

  """All values that are not contained in given list."""
  shootDates_not_in: [String!]

  """All values less than the given value."""
  shootDates_lt: String

  """All values less than or equal the given value."""
  shootDates_lte: String

  """All values greater than the given value."""
  shootDates_gt: String

  """All values greater than or equal the given value."""
  shootDates_gte: String

  """All values containing the given string."""
  shootDates_contains: String

  """All values not containing the given string."""
  shootDates_not_contains: String

  """All values starting with the given string."""
  shootDates_starts_with: String

  """All values not starting with the given string."""
  shootDates_not_starts_with: String

  """All values ending with the given string."""
  shootDates_ends_with: String

  """All values not ending with the given string."""
  shootDates_not_ends_with: String
  location: String

  """All values that are not equal to given value."""
  location_not: String

  """All values that are contained in given list."""
  location_in: [String!]

  """All values that are not contained in given list."""
  location_not_in: [String!]

  """All values less than the given value."""
  location_lt: String

  """All values less than or equal the given value."""
  location_lte: String

  """All values greater than the given value."""
  location_gt: String

  """All values greater than or equal the given value."""
  location_gte: String

  """All values containing the given string."""
  location_contains: String

  """All values not containing the given string."""
  location_not_contains: String

  """All values starting with the given string."""
  location_starts_with: String

  """All values not starting with the given string."""
  location_not_starts_with: String

  """All values ending with the given string."""
  location_ends_with: String

  """All values not ending with the given string."""
  location_not_ends_with: String
  productionCompany: String

  """All values that are not equal to given value."""
  productionCompany_not: String

  """All values that are contained in given list."""
  productionCompany_in: [String!]

  """All values that are not contained in given list."""
  productionCompany_not_in: [String!]

  """All values less than the given value."""
  productionCompany_lt: String

  """All values less than or equal the given value."""
  productionCompany_lte: String

  """All values greater than the given value."""
  productionCompany_gt: String

  """All values greater than or equal the given value."""
  productionCompany_gte: String

  """All values containing the given string."""
  productionCompany_contains: String

  """All values not containing the given string."""
  productionCompany_not_contains: String

  """All values starting with the given string."""
  productionCompany_starts_with: String

  """All values not starting with the given string."""
  productionCompany_not_starts_with: String

  """All values ending with the given string."""
  productionCompany_ends_with: String

  """All values not ending with the given string."""
  productionCompany_not_ends_with: String
  assetSource: String

  """All values that are not equal to given value."""
  assetSource_not: String

  """All values that are contained in given list."""
  assetSource_in: [String!]

  """All values that are not contained in given list."""
  assetSource_not_in: [String!]

  """All values less than the given value."""
  assetSource_lt: String

  """All values less than or equal the given value."""
  assetSource_lte: String

  """All values greater than the given value."""
  assetSource_gt: String

  """All values greater than or equal the given value."""
  assetSource_gte: String

  """All values containing the given string."""
  assetSource_contains: String

  """All values not containing the given string."""
  assetSource_not_contains: String

  """All values starting with the given string."""
  assetSource_starts_with: String

  """All values not starting with the given string."""
  assetSource_not_starts_with: String

  """All values ending with the given string."""
  assetSource_ends_with: String

  """All values not ending with the given string."""
  assetSource_not_ends_with: String
  assetUsageMotion: String

  """All values that are not equal to given value."""
  assetUsageMotion_not: String

  """All values that are contained in given list."""
  assetUsageMotion_in: [String!]

  """All values that are not contained in given list."""
  assetUsageMotion_not_in: [String!]

  """All values less than the given value."""
  assetUsageMotion_lt: String

  """All values less than or equal the given value."""
  assetUsageMotion_lte: String

  """All values greater than the given value."""
  assetUsageMotion_gt: String

  """All values greater than or equal the given value."""
  assetUsageMotion_gte: String

  """All values containing the given string."""
  assetUsageMotion_contains: String

  """All values not containing the given string."""
  assetUsageMotion_not_contains: String

  """All values starting with the given string."""
  assetUsageMotion_starts_with: String

  """All values not starting with the given string."""
  assetUsageMotion_not_starts_with: String

  """All values ending with the given string."""
  assetUsageMotion_ends_with: String

  """All values not ending with the given string."""
  assetUsageMotion_not_ends_with: String
  assetUsageStill: String

  """All values that are not equal to given value."""
  assetUsageStill_not: String

  """All values that are contained in given list."""
  assetUsageStill_in: [String!]

  """All values that are not contained in given list."""
  assetUsageStill_not_in: [String!]

  """All values less than the given value."""
  assetUsageStill_lt: String

  """All values less than or equal the given value."""
  assetUsageStill_lte: String

  """All values greater than the given value."""
  assetUsageStill_gt: String

  """All values greater than or equal the given value."""
  assetUsageStill_gte: String

  """All values containing the given string."""
  assetUsageStill_contains: String

  """All values not containing the given string."""
  assetUsageStill_not_contains: String

  """All values starting with the given string."""
  assetUsageStill_starts_with: String

  """All values not starting with the given string."""
  assetUsageStill_not_starts_with: String

  """All values ending with the given string."""
  assetUsageStill_ends_with: String

  """All values not ending with the given string."""
  assetUsageStill_not_ends_with: String
  talentUsage: String

  """All values that are not equal to given value."""
  talentUsage_not: String

  """All values that are contained in given list."""
  talentUsage_in: [String!]

  """All values that are not contained in given list."""
  talentUsage_not_in: [String!]

  """All values less than the given value."""
  talentUsage_lt: String

  """All values less than or equal the given value."""
  talentUsage_lte: String

  """All values greater than the given value."""
  talentUsage_gt: String

  """All values greater than or equal the given value."""
  talentUsage_gte: String

  """All values containing the given string."""
  talentUsage_contains: String

  """All values not containing the given string."""
  talentUsage_not_contains: String

  """All values starting with the given string."""
  talentUsage_starts_with: String

  """All values not starting with the given string."""
  talentUsage_not_starts_with: String

  """All values ending with the given string."""
  talentUsage_ends_with: String

  """All values not ending with the given string."""
  talentUsage_not_ends_with: String
  earliestStart: String

  """All values that are not equal to given value."""
  earliestStart_not: String

  """All values that are contained in given list."""
  earliestStart_in: [String!]

  """All values that are not contained in given list."""
  earliestStart_not_in: [String!]

  """All values less than the given value."""
  earliestStart_lt: String

  """All values less than or equal the given value."""
  earliestStart_lte: String

  """All values greater than the given value."""
  earliestStart_gt: String

  """All values greater than or equal the given value."""
  earliestStart_gte: String

  """All values containing the given string."""
  earliestStart_contains: String

  """All values not containing the given string."""
  earliestStart_not_contains: String

  """All values starting with the given string."""
  earliestStart_starts_with: String

  """All values not starting with the given string."""
  earliestStart_not_starts_with: String

  """All values ending with the given string."""
  earliestStart_ends_with: String

  """All values not ending with the given string."""
  earliestStart_not_ends_with: String
  earliestEnd: String

  """All values that are not equal to given value."""
  earliestEnd_not: String

  """All values that are contained in given list."""
  earliestEnd_in: [String!]

  """All values that are not contained in given list."""
  earliestEnd_not_in: [String!]

  """All values less than the given value."""
  earliestEnd_lt: String

  """All values less than or equal the given value."""
  earliestEnd_lte: String

  """All values greater than the given value."""
  earliestEnd_gt: String

  """All values greater than or equal the given value."""
  earliestEnd_gte: String

  """All values containing the given string."""
  earliestEnd_contains: String

  """All values not containing the given string."""
  earliestEnd_not_contains: String

  """All values starting with the given string."""
  earliestEnd_starts_with: String

  """All values not starting with the given string."""
  earliestEnd_not_starts_with: String

  """All values ending with the given string."""
  earliestEnd_ends_with: String

  """All values not ending with the given string."""
  earliestEnd_not_ends_with: String
  generalNotes: String

  """All values that are not equal to given value."""
  generalNotes_not: String

  """All values that are contained in given list."""
  generalNotes_in: [String!]

  """All values that are not contained in given list."""
  generalNotes_not_in: [String!]

  """All values less than the given value."""
  generalNotes_lt: String

  """All values less than or equal the given value."""
  generalNotes_lte: String

  """All values greater than the given value."""
  generalNotes_gt: String

  """All values greater than or equal the given value."""
  generalNotes_gte: String

  """All values containing the given string."""
  generalNotes_contains: String

  """All values not containing the given string."""
  generalNotes_not_contains: String

  """All values starting with the given string."""
  generalNotes_starts_with: String

  """All values not starting with the given string."""
  generalNotes_not_starts_with: String

  """All values ending with the given string."""
  generalNotes_ends_with: String

  """All values not ending with the given string."""
  generalNotes_not_ends_with: String
  item: ItemDataWhereInput
}
  

Также, чтобы доказать, что это не имеет ничего общего с тем, что prisma не обновляет мой сгенерированный файл, вот еще один тип, который prisma сгенерировал из этой же таблицы ItemDescription

 input ItemDescriptionUpdateWithoutItemDataInput {
  description: String
  shootDates: String
  location: String
  productionCompany: String
  assetSource: String
  assetUsageMotion: String
  assetUsageStill: String
  talentUsage: String
  earliestStart: String
  earliestEnd: String
  generalNotes: String
  languages: ItemDescriptionUpdatelanguagesInput
}
  

Итак, мой вопрос в том, почему prisma не генерирует whereinput, который включает значение с типом массива строк? У меня нет возможности запросить это сейчас.

Комментарии:

1. Да, даже кажется, что он не генерирует это для каких-либо базовых типов, таких как string or int , что делает эти типы совершенно бесполезными, если у вас есть массив, какой смысл иметь данные, которые вы не можете запросить? Хорошая работа prisma. Теперь мне нужно переделать работу, чтобы создать новую таблицу только для хранения строки, чтобы я мог ее запросить.