#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
orint
, что делает эти типы совершенно бесполезными, если у вас есть массив, какой смысл иметь данные, которые вы не можете запросить? Хорошая работа prisma. Теперь мне нужно переделать работу, чтобы создать новую таблицу только для хранения строки, чтобы я мог ее запросить.