模糊性在于User和UserLeague之间的关系

时间:2018-03-17 15:21:56

标签: graphql graphql-js prisma

我有两种类型: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-directiveUserStory类型的prisma文档中的示例。

但是当我尝试使用yarn prisma deploy进行部署时,收到以下错误消息:

  

" message":"迁移过程中存在关系模糊。请首先在架构上命名旧关系。模糊性在于User和UserLeague之间的关系。"

我不太清楚我错过了什么。非常感谢你的帮助:))

2 个答案:

答案 0 :(得分:0)

在不知道您发布的架构的部署历史的情况下,很难确定是什么问题。但是,似乎您正在尝试部署架构更改而未在relation指令中指定足够的信息(例如,我看不到onDelete指令的任何规范)。没有这个,prisma将抛出“模棱两可的关系”消息。

here描述了其原因。总而言之,归结为向SDL模式添加足够的信息,以便您可以利用prisma每次运行prisma deploy来迁移数据库。

希望这会有所帮助!

答案 1 :(得分:0)

输入prisma delete删除服务,然后输入prisma deploy

那为我解决了问题。