Prisma GraphQL Belongs To and Has Many Relations










1















I'm learning Prisma GraphQL and trying to create a belongs to and has many relations, but when deploying it fails.



The scenario:



  • User will have a list of created comments

  • User will have a list of comments

  • Comment will belongs to an author (User)

  • Comment will have an user (commented User)

What I've tried:



type User 
id: ID! @unique
createdAt: DateTime!
updatedAt: DateTime!
email: String! @unique
password: String!
roles: [Role!]!

profile: Profile! @relation(name: "Profile", onDelete: CASCADE)
addresses: [Address!]! @relation(name: "AddressAuthor", onDelete: CASCADE)
posts: [Post!]! @relation(name: "PostAuthor", onDelete: CASCADE)
topics: [Topic!]! @relation(name: "TopicAuthor", onDelete: CASCADE)
subjects: [Subject!]! @relation(name: "SubjectAuthor", onDelete: CASCADE)
votes: [Vote!]! @relatiion(name: "VoteAuthor", onDelete: CASCADE)
notifications: [Notification!]! @relation(name: "Notification", onDelete: CASCADE)

createdFollows: [Follow!]! @relation(name: "FollowAuthor", onDelete: CASCADE)
followers: [Follow!]! @relation(name: "FollowedUser", onDelete: CASCADE)

createdComments: [Comment!]! @relation(name: "CommentAuthor", onDelete: CASCADE)
comments: [Comment!]! @relation(name: "CommentedUser")


type Comment
id: ID! @unique
createdAt: DateTime!
updatedAt: DateTime!
author: User! @relation(name: "CommentAuthor")

type: String!
body: String!
attachments: [Attachment!]! @relation(name: "CommentAttachment", onDelete: CASCADE)
comments: [Comment!]! @relation(name: "CommentComment", onDelete: CASCADE)
likes: [Like!]!
followers: [Follow!]!

user: User @relation(name: "CommentedUser", onDelete: CASCADE)
post: Post
topic: Topic
subject: Subject
comment: Comment @relation(name: "CommentComment")



But when trying to deploy it, I got error to fix the ambiguity between Comment and User. So, can you help me how to correctly define the relations? Post, User and even Comment can have many comments.



Thanks!










share|improve this question
























  • I just tried your example and could deploy the datamodel you showed without any issues. Did you show your entire datamodel or are there any missing types? In any case, it seems like your issue is somewhere else?! @nanang-mahdaen-el-agung

    – nburk
    Nov 20 '18 at 8:50












  • @nburk thanks for the response. I've updated the question. So, when I remove the commentedUsers and comments from the User and remove the user from Comment and remove the relation name of Comment author, the deploy just fine. Am I doing wrong when naming the relation?

    – Nanang Mahdaen El-Agung
    Nov 21 '18 at 0:22















1















I'm learning Prisma GraphQL and trying to create a belongs to and has many relations, but when deploying it fails.



The scenario:



  • User will have a list of created comments

  • User will have a list of comments

  • Comment will belongs to an author (User)

  • Comment will have an user (commented User)

What I've tried:



type User 
id: ID! @unique
createdAt: DateTime!
updatedAt: DateTime!
email: String! @unique
password: String!
roles: [Role!]!

profile: Profile! @relation(name: "Profile", onDelete: CASCADE)
addresses: [Address!]! @relation(name: "AddressAuthor", onDelete: CASCADE)
posts: [Post!]! @relation(name: "PostAuthor", onDelete: CASCADE)
topics: [Topic!]! @relation(name: "TopicAuthor", onDelete: CASCADE)
subjects: [Subject!]! @relation(name: "SubjectAuthor", onDelete: CASCADE)
votes: [Vote!]! @relatiion(name: "VoteAuthor", onDelete: CASCADE)
notifications: [Notification!]! @relation(name: "Notification", onDelete: CASCADE)

createdFollows: [Follow!]! @relation(name: "FollowAuthor", onDelete: CASCADE)
followers: [Follow!]! @relation(name: "FollowedUser", onDelete: CASCADE)

createdComments: [Comment!]! @relation(name: "CommentAuthor", onDelete: CASCADE)
comments: [Comment!]! @relation(name: "CommentedUser")


type Comment
id: ID! @unique
createdAt: DateTime!
updatedAt: DateTime!
author: User! @relation(name: "CommentAuthor")

type: String!
body: String!
attachments: [Attachment!]! @relation(name: "CommentAttachment", onDelete: CASCADE)
comments: [Comment!]! @relation(name: "CommentComment", onDelete: CASCADE)
likes: [Like!]!
followers: [Follow!]!

user: User @relation(name: "CommentedUser", onDelete: CASCADE)
post: Post
topic: Topic
subject: Subject
comment: Comment @relation(name: "CommentComment")



But when trying to deploy it, I got error to fix the ambiguity between Comment and User. So, can you help me how to correctly define the relations? Post, User and even Comment can have many comments.



Thanks!










share|improve this question
























  • I just tried your example and could deploy the datamodel you showed without any issues. Did you show your entire datamodel or are there any missing types? In any case, it seems like your issue is somewhere else?! @nanang-mahdaen-el-agung

    – nburk
    Nov 20 '18 at 8:50












  • @nburk thanks for the response. I've updated the question. So, when I remove the commentedUsers and comments from the User and remove the user from Comment and remove the relation name of Comment author, the deploy just fine. Am I doing wrong when naming the relation?

    – Nanang Mahdaen El-Agung
    Nov 21 '18 at 0:22













1












1








1








I'm learning Prisma GraphQL and trying to create a belongs to and has many relations, but when deploying it fails.



The scenario:



  • User will have a list of created comments

  • User will have a list of comments

  • Comment will belongs to an author (User)

  • Comment will have an user (commented User)

What I've tried:



type User 
id: ID! @unique
createdAt: DateTime!
updatedAt: DateTime!
email: String! @unique
password: String!
roles: [Role!]!

profile: Profile! @relation(name: "Profile", onDelete: CASCADE)
addresses: [Address!]! @relation(name: "AddressAuthor", onDelete: CASCADE)
posts: [Post!]! @relation(name: "PostAuthor", onDelete: CASCADE)
topics: [Topic!]! @relation(name: "TopicAuthor", onDelete: CASCADE)
subjects: [Subject!]! @relation(name: "SubjectAuthor", onDelete: CASCADE)
votes: [Vote!]! @relatiion(name: "VoteAuthor", onDelete: CASCADE)
notifications: [Notification!]! @relation(name: "Notification", onDelete: CASCADE)

createdFollows: [Follow!]! @relation(name: "FollowAuthor", onDelete: CASCADE)
followers: [Follow!]! @relation(name: "FollowedUser", onDelete: CASCADE)

createdComments: [Comment!]! @relation(name: "CommentAuthor", onDelete: CASCADE)
comments: [Comment!]! @relation(name: "CommentedUser")


type Comment
id: ID! @unique
createdAt: DateTime!
updatedAt: DateTime!
author: User! @relation(name: "CommentAuthor")

type: String!
body: String!
attachments: [Attachment!]! @relation(name: "CommentAttachment", onDelete: CASCADE)
comments: [Comment!]! @relation(name: "CommentComment", onDelete: CASCADE)
likes: [Like!]!
followers: [Follow!]!

user: User @relation(name: "CommentedUser", onDelete: CASCADE)
post: Post
topic: Topic
subject: Subject
comment: Comment @relation(name: "CommentComment")



But when trying to deploy it, I got error to fix the ambiguity between Comment and User. So, can you help me how to correctly define the relations? Post, User and even Comment can have many comments.



Thanks!










share|improve this question
















I'm learning Prisma GraphQL and trying to create a belongs to and has many relations, but when deploying it fails.



The scenario:



  • User will have a list of created comments

  • User will have a list of comments

  • Comment will belongs to an author (User)

  • Comment will have an user (commented User)

What I've tried:



type User 
id: ID! @unique
createdAt: DateTime!
updatedAt: DateTime!
email: String! @unique
password: String!
roles: [Role!]!

profile: Profile! @relation(name: "Profile", onDelete: CASCADE)
addresses: [Address!]! @relation(name: "AddressAuthor", onDelete: CASCADE)
posts: [Post!]! @relation(name: "PostAuthor", onDelete: CASCADE)
topics: [Topic!]! @relation(name: "TopicAuthor", onDelete: CASCADE)
subjects: [Subject!]! @relation(name: "SubjectAuthor", onDelete: CASCADE)
votes: [Vote!]! @relatiion(name: "VoteAuthor", onDelete: CASCADE)
notifications: [Notification!]! @relation(name: "Notification", onDelete: CASCADE)

createdFollows: [Follow!]! @relation(name: "FollowAuthor", onDelete: CASCADE)
followers: [Follow!]! @relation(name: "FollowedUser", onDelete: CASCADE)

createdComments: [Comment!]! @relation(name: "CommentAuthor", onDelete: CASCADE)
comments: [Comment!]! @relation(name: "CommentedUser")


type Comment
id: ID! @unique
createdAt: DateTime!
updatedAt: DateTime!
author: User! @relation(name: "CommentAuthor")

type: String!
body: String!
attachments: [Attachment!]! @relation(name: "CommentAttachment", onDelete: CASCADE)
comments: [Comment!]! @relation(name: "CommentComment", onDelete: CASCADE)
likes: [Like!]!
followers: [Follow!]!

user: User @relation(name: "CommentedUser", onDelete: CASCADE)
post: Post
topic: Topic
subject: Subject
comment: Comment @relation(name: "CommentComment")



But when trying to deploy it, I got error to fix the ambiguity between Comment and User. So, can you help me how to correctly define the relations? Post, User and even Comment can have many comments.



Thanks!







graphql prisma






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 21 '18 at 0:19







Nanang Mahdaen El-Agung

















asked Nov 11 '18 at 0:06









Nanang Mahdaen El-AgungNanang Mahdaen El-Agung

1,117611




1,117611












  • I just tried your example and could deploy the datamodel you showed without any issues. Did you show your entire datamodel or are there any missing types? In any case, it seems like your issue is somewhere else?! @nanang-mahdaen-el-agung

    – nburk
    Nov 20 '18 at 8:50












  • @nburk thanks for the response. I've updated the question. So, when I remove the commentedUsers and comments from the User and remove the user from Comment and remove the relation name of Comment author, the deploy just fine. Am I doing wrong when naming the relation?

    – Nanang Mahdaen El-Agung
    Nov 21 '18 at 0:22

















  • I just tried your example and could deploy the datamodel you showed without any issues. Did you show your entire datamodel or are there any missing types? In any case, it seems like your issue is somewhere else?! @nanang-mahdaen-el-agung

    – nburk
    Nov 20 '18 at 8:50












  • @nburk thanks for the response. I've updated the question. So, when I remove the commentedUsers and comments from the User and remove the user from Comment and remove the relation name of Comment author, the deploy just fine. Am I doing wrong when naming the relation?

    – Nanang Mahdaen El-Agung
    Nov 21 '18 at 0:22
















I just tried your example and could deploy the datamodel you showed without any issues. Did you show your entire datamodel or are there any missing types? In any case, it seems like your issue is somewhere else?! @nanang-mahdaen-el-agung

– nburk
Nov 20 '18 at 8:50






I just tried your example and could deploy the datamodel you showed without any issues. Did you show your entire datamodel or are there any missing types? In any case, it seems like your issue is somewhere else?! @nanang-mahdaen-el-agung

– nburk
Nov 20 '18 at 8:50














@nburk thanks for the response. I've updated the question. So, when I remove the commentedUsers and comments from the User and remove the user from Comment and remove the relation name of Comment author, the deploy just fine. Am I doing wrong when naming the relation?

– Nanang Mahdaen El-Agung
Nov 21 '18 at 0:22





@nburk thanks for the response. I've updated the question. So, when I remove the commentedUsers and comments from the User and remove the user from Comment and remove the relation name of Comment author, the deploy just fine. Am I doing wrong when naming the relation?

– Nanang Mahdaen El-Agung
Nov 21 '18 at 0:22












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53244647%2fprisma-graphql-belongs-to-and-has-many-relations%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53244647%2fprisma-graphql-belongs-to-and-has-many-relations%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

Edmonton

Crossroads (UK TV series)