У меня есть следующий schema.prisma
файл:
model Account {
id Int @default(autoincrement()) @id
name String
transactions Transaction[]
}
model Transaction {
id Int @default(autoincrement()) @id
accountId Int
account Account @relation(fields: [accountId], references: [id])
}
Я могу выполнить
npx prisma migrate save --experimental
npx prisma migrate up --experimental --verbose
npx prisma generate
без ошибок и база данных выглядит нормально (этот снимок экрана также содержит валюту, но не имеет влияние на эту проблему).
Но когда я выполняю ApolloServer
, использующий nexusPrismaPlugin
, у меня появляется ошибка:
Using ts-node version 8.9.0, typescript version 3.8.3
Error: Input Object type TransactionCreateWithoutAccountInput must define one or more fields.
at assertValidSchema (/home/daniel/pro/cash/core/node_modules/graphql/type/validate.js:71:11)
at assertValidExecutionArguments (/home/daniel/pro/cash/core/node_modules/graphql/execution/execute.js:136:35)
at executeImpl (/home/daniel/pro/cash/core/node_modules/graphql/execution/execute.js:86:3)
at Object.execute (/home/daniel/pro/cash/core/node_modules/graphql/execution/execute.js:64:63)
at Object.generateSchemaHash (/home/daniel/pro/cash/core/node_modules/apollo-server-core/src/utils/schemaHash.ts:11:18)
at ApolloServer.generateSchemaDerivedData (/home/daniel/pro/cash/core/node_modules/apollo-server-core/src/ApolloServer.ts:541:24)
at new ApolloServerBase (/home/daniel/pro/cash/core/node_modules/apollo-server-core/src/ApolloServer.ts:400:32)
at new ApolloServer (/home/daniel/pro/cash/core/node_modules/apollo-server-express/src/ApolloServer.ts:88:5)
at new ApolloServer (/home/daniel/pro/cash/core/node_modules/apollo-server/src/index.ts:36:5)
at Object.<anonymous> (/home/daniel/pro/cash/core/src/server.ts:5:1)
[ERROR] 01:01:32 Error: Input Object type TransactionCreateWithoutAccountInput must define one or more fields.
Мой код не содержит ничего, связанного с транзакцией. Если я удаляю Transaction
, все отлично работает.
В сгенерированном коде я вижу в файле:
node_modules/@prisma/client/index.d.ts
export type TransactionCreateWithoutAccountInput = {
}
...
export type TransactionCreateManyWithoutAccountInput = {
create?: Enumerable<TransactionCreateWithoutAccountInput> | null
connect?: Enumerable<TransactionWhereUniqueInput> | null
}
...
export type TransactionUpdateManyWithoutAccountInput = {
create?: Enumerable<TransactionCreateWithoutAccountInput> | null
connect?: Enumerable<TransactionWhereUniqueInput> | null
set?: Enumerable<TransactionWhereUniqueInput> | null
disconnect?: Enumerable<TransactionWhereUniqueInput> | null
delete?: Enumerable<TransactionWhereUniqueInput> | null
update?: Enumerable<TransactionUpdateWithWhereUniqueWithoutAccountInput> | null
updateMany?: Enumerable<TransactionUpdateManyWithWhereNestedInput> | null
deleteMany?: Enumerable<TransactionScalarWhereInput> | null
}
Как это исправить?