3

我有两种类型: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")
}

在我看来,这非常类似于此处的 prisma 文档中的示例https://www.prismagraphql.com/docs/reference/service-configuration/data-modelling-(sdl)-eiroozae8u#the-@relation -带有UserStory类型的指令。

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

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

我不太明白我错过了什么。非常感谢您的帮助 :)

4

2 回答 2

0

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

这为我解决了问题。

于 2019-07-20T21:14:09.353 回答
0

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

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

希望这可以帮助!

于 2018-06-23T18:25:19.600 回答