我有两种类型:User和UserLeague
type User {
id: ID! @unique
email: String! @unique
password: String!
name: String!
predictions: [Prediction!]!
leagues: [UserLeague!]! @relation(name: "MemberOfLeague")
ownedLeagues: [UserLeague!]! @relation(name: "LeagueOwner")
}
type UserLeague {
id: ID! @unique
passcode: String!
name: String!
history: [Prediction!]!
users: [User!]! @relation(name: "MemberOfLeague")
owner: User! @relation(name: "LeagueOwner")
}
对我来说,这看起来非常类似于此处https://www.prismagraphql.com/docs/reference/service-configuration/data-modelling-(sdl)-eiroozae8u#the-@relation-directive的User
和Story
类型的prisma文档中的示例。
但是当我尝试使用yarn prisma deploy
进行部署时,收到以下错误消息:
" message":"迁移过程中存在关系模糊。请首先在架构上命名旧关系。模糊性在于User和UserLeague之间的关系。"
我不太清楚我错过了什么。非常感谢你的帮助:))
答案 0 :(得分:0)
在不知道您发布的架构的部署历史的情况下,很难确定是什么问题。但是,似乎您正在尝试部署架构更改而未在relation
指令中指定足够的信息(例如,我看不到onDelete
指令的任何规范)。没有这个,prisma
将抛出“模棱两可的关系”消息。
here描述了其原因。总而言之,归结为向SDL模式添加足够的信息,以便您可以利用prisma
每次运行prisma deploy
来迁移数据库。
希望这会有所帮助!
答案 1 :(得分:0)
输入prisma delete
删除服务,然后输入prisma deploy
。
那为我解决了问题。