Current behavior
When you are trying to deploy three or more relations between the same two types, you receive an internal server error:
prisma-database_1 | java.lang.IllegalArgumentException: requirement failed: This method must only be called for unambiguous relations!
prisma-database_1 | at scala.Predef$.require(Predef.scala:277)
prisma-database_1 | at com.prisma.shared.models.Schema.getUnambiguousRelationThatConnectsModels_$bang(Models.scala:114)
prisma-database_1 | {"key":"error/unhandled","requestId":"cluster:cluster:cjezvk0nk00190135wc9abixm","payload":{"exception":"java.lang.IllegalArgumentException
: requirement failed: This method must only be called for unambiguous relations!","query":" mutation($name: String!, $stage: String! $types: String! $dryRu
n: Boolean $secrets: [String!], $subscriptions: [FunctionInput!]) {\n deploy(input: {\n name: $name\n stage: $stage\n types: $
types\n dryRun: $dryRun\n secrets: $secrets\n subscriptions: $subscriptions\n }) {\n errors {\n type\n
field\n description\n }\n migration {\n ...MigrationFragment\n }\n }\n }\n \nfragment
MigrationFragment on Migration {\n revision\n steps {\n type\n __typename\n ... on CreateEnum {\n name\n ce_values: values\n }\n ...
on CreateField {\n model\n name\n cf_typeName: typeName\n cf_isRequired: isRequired\n cf_isList: isList\n cf_isUnique: unique\n
cf_relation: relation\n cf_defaultValue: default\n cf_enum: enum\n }\n ... on CreateModel {\n name\n }\n ... on CreateRelation {\n
name\n leftModel\n rightModel\n }\n ... on DeleteEnum {\n name\n }\n ... on DeleteField {\n model\n name\n }\n
... on DeleteModel {\n name\n }\n ... on DeleteRelation {\n name\n }\n ... on UpdateEnum {\n name\n newName\n values\n }
\n ... on UpdateField {\n model\n name\n newName\n typeName\n isRequired\n isList\n isUnique: unique\n relation\n
default\n enum\n }\n ... on UpdateModel {\n name\n um_newName: newName\n }\n }\n}\n\n ","variables":"{\"stage\":\"dev\",\"name\":\
"three-relations\",\"secrets\":null,\"types\":\"type A {\\n id: ID! @unique\\n title: String\\n b1: B @relation(name: \\\"AB1\\\")\\n b2: B @relation(name: \\\"AB2\\\")\\n b3: B @relation(name: \\\"AB3\\\")\\n}\\n\\ntype B {\\n id: ID
! @unique\\n title: String\\n a1: A @relation(name: \\\"AB1\\\")\\n a2: A @relation(name: \\\"AB2\\\")\\n a3: A @relation(name: \\\"AB3\\\")\\n}\\n\\n\",\"s
ubscriptions\":[]}","code":"0","stack_trace":"scala.Predef$.require(Predef.scala:277)\\n com.prisma.shared.models.Schema.getUnambiguousRelationThatConnectsModel
s_$bang(Models.scala:114)\\n com.prisma.deploy.migration.inference.SchemaInferrerImpl.$anonfun$nextRelations$8(SchemaInferrer.scala:158)\\n scala.Option.orElse(
Option.scala:289)\\n com.prisma.deploy.migration.inference.SchemaInferrerImpl.$anonfun$nextRelations$3(SchemaInferrer.scala:158)\\n scala.collection.Traversable
Like$WithFilter.$anonfun$map$2(TraversableLike.scala:739)\\n scala.collection.Iterator.foreach(Iterator.scala:929)\\n scala.collection.Iterator.foreach$(Iterato
r.scala:929)\\n scala.collection.AbstractIterator.foreach(Iterator.scala:1417)\\n scala.collection.IterableLike.foreach(IterableLike.scala:71)\\n scala.collecti
on.IterableLike.foreach$(IterableLike.scala:70)\\n scala.collection.AbstractIterable.foreach(Iterable.scala:54)\\n scala.collection.TraversableLike$WithFilter.m
ap(TraversableLike.scala:738)\\n com.prisma.deploy.migration.inference.SchemaInferrerImpl.$anonfun$nextRelations$1(SchemaInferrer.scala:116)\\n scala.collection
.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:241)\\n scala.collection.Iterator.foreach(Iterator.scala:929)\\n scala.collection.Iterator.foreach$(It
erator.scala:929)\\n scala.collection.AbstractIterator.foreach(Iterator.scala:1417)\\n scala.collection.IterableLike.foreach(IterableLike.scala:71)\\n scala.col
lection.IterableLike.foreach$(IterableLike.scala:70)\\n scala.collection.AbstractIterable.foreach(Iterable.scala:54)\\n scala.collection.TraversableLike.flatMap
(TraversableLike.scala:241)\\n scala.collection.TraversableLike.flatMap$(TraversableLike.scala:238)\\n scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)\\n com.prisma.deploy.migration.inference.SchemaInferrerImpl.nextRelat
ions$lzycompute(SchemaInferrer.scala:115)\\n com.prisma.deploy.migration.inference.SchemaInferrerImpl.nextRelations(SchemaInferrer.scala:113)\\n com.prisma.depl
oy.migration.inference.SchemaInferrerImpl.$anonfun$fieldsForType$1(SchemaInferrer.scala:78)\\n scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLi
ke.scala:241)\\n scala.collection.Iterator.foreach(Iterator.scala:929)\\n scala.collection.Iterator.foreach$(Iterator.scala:929)\\n scala.collection.AbstractIte
rator.foreach(Iterator.scala:1417)\\n scala.collection.IterableLike.foreach(IterableLike.scala:71)\\n scala.collection.IterableLike.foreach$(IterableLike.scala:
70)\\n scala.collection.AbstractIterable.foreach(Iterable.scala:54)\\n scala.collection.TraversableLike.flatMap(TraversableLike.scala:241)\\n scala.collection.T
raversableLike.flatMap$(TraversableLike.scala:238)\\n scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)\\n com.prisma.deploy.migration.inference.SchemaInferrerImpl.fieldsForType(SchemaInferrer.scala:71)\\n com.prisma.deplo
y.migration.inference.SchemaInferrerImpl.$anonfun$nextModels$1(SchemaInferrer.scala:49)\\n scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala
:234)\\n scala.collection.Iterator.foreach(Iterator.scala:929)\\n scala.collection.Iterator.foreach$(Iterator.scala:929)\\n scala.collection.AbstractIterator.fo
reach(Iterator.scala:1417)\\n scala.collection.IterableLike.foreach(IterableLike.scala:71)\\n scala.collection.IterableLike.foreach$(IterableLike.scala:70)\\n s
cala.collection.AbstractIterable.foreach(Iterable.scala:54)\\n scala.collection.TraversableLike.map(TraversableLike.scala:234)\\n scala.collection.TraversableLi
ke.map$(TraversableLike.scala:227)\\n scala.collection.AbstractTraversable.map(Traversable.scala:104)\\n com.prisma.deploy.migration.inference.SchemaInferrerImp
l.nextModels$lzycompute(SchemaInferrer.scala:48)\\n com.prisma.deploy.migration.inference.SchemaInferrerImpl.nextModels(SchemaInferrer.scala:47)\\n com.prisma.deploy.migration.inference.SchemaInferrerImpl.infer(SchemaInferrer.scala:37)\\n c
om.prisma.deploy.migration.inference.SchemaInferrer$$anon$1.infer(SchemaInferrer.scala:22)\\n com.prisma.deploy.schema.mutations.DeployMutation.performDeploymen
t(DeployMutation.scala:60)\\n com.prisma.deploy.schema.mutations.DeployMutation.execute(DeployMutation.scala:53)\\n com.prisma.deploy.schema.SchemaBuilderImpl.$
anonfun$deployField$7(SchemaBuilder.scala:187)\\n scala.concurrent.Future.$anonfun$flatMap$1(Future.scala:302)\\n scala.concurrent.impl.Promise.$anonfun$transfo
rmWith$1(Promise.scala:37)\\n scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)\\n akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(Batching
Executor.scala:55)\\n akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:91)\\n scala.runtime.java8.JFunction0$mcV$sp.apply(JFu
nction0$mcV$sp.java:12)\\n scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:81)\\n akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:91)\\n akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:4
0)\\n akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:43)\\n akka.dispatch.forkjoin.ForkJoinTask.doExec(Fork
JoinTask.java:260)\\n akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)\\n akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPoo
l.java:1979)\\n akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)","message":"requirement failed: This method must only be called f
or unambiguous relations!"}}
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.$anonfun$nextRelations$8(SchemaInferrer.scala:158)
prisma-database_1 | at scala.Option.orElse(Option.scala:289)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.$anonfun$nextRelations$3(SchemaInferrer.scala:158)
prisma-database_1 | at scala.collection.TraversableLike$WithFilter.$anonfun$map$2(TraversableLike.scala:739)
prisma-database_1 | at scala.collection.Iterator.foreach(Iterator.scala:929)prisma-database_1 | at scala.collection.Iterator.foreach$(Iterator.scala:929)
prisma-database_1 | at scala.collection.AbstractIterator.foreach(Iterator.scala:1417)
prisma-database_1 | at scala.collection.IterableLike.foreach(IterableLike.scala:71)
prisma-database_1 | at scala.collection.IterableLike.foreach$(IterableLike.scala:70)
prisma-database_1 | at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
prisma-database_1 | at scala.collection.TraversableLike$WithFilter.map(TraversableLike.scala:738)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.$anonfun$nextRelations$1(SchemaInferrer.scala:116)
prisma-database_1 | at scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:241)
prisma-database_1 | at scala.collection.Iterator.foreach(Iterator.scala:929)prisma-database_1 | at scala.collection.Iterator.foreach$(Iterator.scala:929)
prisma-database_1 | at scala.collection.AbstractIterator.foreach(Iterator.scala:1417)
prisma-database_1 | at scala.collection.IterableLike.foreach(IterableLike.scala:71)
prisma-database_1 | at scala.collection.IterableLike.foreach$(IterableLike.scala:70)
prisma-database_1 | at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
prisma-database_1 | at scala.collection.TraversableLike.flatMap(TraversableLike.scala:241)
prisma-database_1 | at scala.collection.TraversableLike.flatMap$(TraversableLike.scala:238)
prisma-database_1 | at scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.nextRelations$lzycompute(SchemaInferrer.scala:115)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.nextRelations(SchemaInferrer.scala:113)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.$anonfun$fieldsForType$1(SchemaInferrer.scala:78)
prisma-database_1 | at scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:241)
prisma-database_1 | at scala.collection.Iterator.foreach(Iterator.scala:929)prisma-database_1 | at scala.collection.Iterator.foreach$(Iterator.scala:929)
prisma-database_1 | at scala.collection.AbstractIterator.foreach(Iterator.scala:1417)
prisma-database_1 | at scala.collection.IterableLike.foreach(IterableLike.scala:71)
prisma-database_1 | at scala.collection.IterableLike.foreach$(IterableLike.scala:70)
prisma-database_1 | at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
prisma-database_1 | at scala.collection.TraversableLike.flatMap(TraversableLike.scala:241)
prisma-database_1 | at scala.collection.TraversableLike.flatMap$(TraversableLike.scala:238)
prisma-database_1 | at scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.fieldsForType(SchemaInferrer.scala:71)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.$anonfun$nextModels$1(SchemaInferrer.scala:49)
prisma-database_1 | at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
prisma-database_1 | at scala.collection.Iterator.foreach(Iterator.scala:929)prisma-database_1 | at scala.collection.Iterator.foreach$(Iterator.scala:929)
prisma-database_1 | at scala.collection.AbstractIterator.foreach(Iterator.scala:1417)
prisma-database_1 | at scala.collection.IterableLike.foreach(IterableLike.scala:71)
prisma-database_1 | at scala.collection.IterableLike.foreach$(IterableLike.scala:70)
prisma-database_1 | at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
prisma-database_1 | at scala.collection.TraversableLike.map(TraversableLike.scala:234)
prisma-database_1 | at scala.collection.Iterator.foreach(Iterator.scala:929)
prisma-database_1 | at scala.collection.Iterator.foreach$(Iterator.scala:929)
prisma-database_1 | at scala.collection.AbstractIterator.foreach(Iterator.scala:1417)
prisma-database_1 | at scala.collection.IterableLike.foreach(IterableLike.scala:71)
prisma-database_1 | at scala.collection.IterableLike.foreach$(IterableLike.scala:70)
prisma-database_1 | at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
prisma-database_1 | at scala.collection.TraversableLike.flatMap(TraversableLike.scala:241)
prisma-database_1 | at scala.collection.TraversableLike.flatMap$(TraversableLike.scala:238)
prisma-database_1 | at scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.nextRelations$lzycompute(SchemaInferrer.scala:115)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.nextRelations(SchemaInferrer.scala:113)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.$anonfun$fieldsForType$1(SchemaInferrer.scala:78)
prisma-database_1 | at scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:241)
prisma-database_1 | at scala.collection.Iterator.foreach(Iterator.scala:929)
prisma-database_1 | at scala.collection.Iterator.foreach$(Iterator.scala:929)
prisma-database_1 | at scala.collection.AbstractIterator.foreach(Iterator.scala:1417)
prisma-database_1 | at scala.collection.IterableLike.foreach(IterableLike.scala:71)
prisma-database_1 | at scala.collection.IterableLike.foreach$(IterableLike.scala:70)
prisma-database_1 | at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
prisma-database_1 | at scala.collection.TraversableLike.flatMap(TraversableLike.scala:241)
prisma-database_1 | at scala.collection.TraversableLike.flatMap$(TraversableLike.scala:238)
prisma-database_1 | at scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.fieldsForType(SchemaInferrer.scala:71)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.$anonfun$nextModels$1(SchemaInferrer.scala:49)
prisma-database_1 | at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
prisma-database_1 | at scala.collection.Iterator.foreach(Iterator.scala:929)
prisma-database_1 | at scala.collection.Iterator.foreach$(Iterator.scala:929)
prisma-database_1 | at scala.collection.AbstractIterator.foreach(Iterator.scala:1417)
prisma-database_1 | at scala.collection.IterableLike.foreach(IterableLike.scala:71)
prisma-database_1 | at scala.collection.IterableLike.foreach$(IterableLike.scala:70)
prisma-database_1 | at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
prisma-database_1 | at scala.collection.TraversableLike.map(TraversableLike.scala:234)
prisma-database_1 | at scala.collection.TraversableLike.map$(TraversableLike.scala:227)
prisma-database_1 | at scala.collection.AbstractTraversable.map(Traversable.scala:104)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.nextModels$lzycompute(SchemaInferrer.scala:48)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.nextModels(SchemaInferrer.scala:47)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrerImpl.infer(SchemaInferrer.scala:37)
prisma-database_1 | at com.prisma.deploy.migration.inference.SchemaInferrer$$anon$1.infer(SchemaInferrer.scala:22)
prisma-database_1 | at com.prisma.deploy.schema.mutations.DeployMutation.performDeployment(DeployMutation.scala:60)
prisma-database_1 | at com.prisma.deploy.schema.mutations.DeployMutation.execute(DeployMutation.scala:53)
prisma-database_1 | at com.prisma.deploy.schema.SchemaBuilderImpl.$anonfun$deployField$7(SchemaBuilder.scala:187)
prisma-database_1 | at scala.concurrent.Future.$anonfun$flatMap$1(Future.scala:302)
prisma-database_1 | at scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:37)
prisma-database_1 | at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
prisma-database_1 | at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)
prisma-database_1 | at akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:91)
prisma-database_1 | at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
prisma-database_1 | at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:81)
prisma-database_1 | at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:91)
prisma-database_1 | at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40)
prisma-database_1 | at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:43)
prisma-database_1 | at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
prisma-database_1 | at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
prisma-database_1 | at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
prisma-database_1 | at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
prisma-database_1 | [Bugsnag - local / testing] Error report: com.bugsnag.Report@29ad5ef3
prisma-database_1 | {"@timestamp":"2018-03-20T16:29:48.807+00:00","@version":1,"message":"{\"key\":\"request/complete\",\"requestId\":\"cluster:cluster:cjezvk0nk00190135wc9
abixm\",\"payload\":{\"request_duration\":\"54\"}}","logger_name":"com.prisma.deploy.server.ClusterServer","thread_name":"single-server-akka.actor.default-dispatcher-2","lev
el":"INFO","level_value":20000,"HOSTNAME":"9b814d9be711"}
prisma-database_1 | {"@timestamp":"2018-03-20T16:30:51.458+00:00","@version":1,"message":"{\"key\":\"request/new\",\"requestId\":\"cluster:cluster:cjezvld1d001a0135n1ht53ys
\"}","logger_name":"com.prisma.deploy.server.ClusterServer","thread_name":"single-server-akka.actor.default-dispatcher-18","level":"INFO","level_value":20000,"HOSTNAME":"9b8
14d9be711"}
prisma-database_1 | {"@timestamp":"2018-03-20T16:30:51.463+00:00","@version":1,"message":"{\"key\":\"request/complete\",\"requestId\":\"cluster:cluster:cjezvld1d001a0135n1h
t53ys\",\"payload\":{\"request_duration\":\"5\"}}","logger_name":"com.prisma.deploy.server.ClusterServer","thread_name":"single-server-akka.actor.default-dispatcher-16","lev
el":"INFO","level_value":20000,"HOSTNAME":"9b814d9be711"}
Reproduction
Deploy a new service using this data model:
type A {
id: ID! @unique
title: String
# b1: B @relation(name: "AB1")
# b2: B @relation(name: "AB2")
# b3: B @relation(name: "AB3")
}
type B {
id: ID! @unique
title: String
# a1: A @relation(name: "AB1")
# a2: A @relation(name: "AB2")
# a3: A @relation(name: "AB3")
}
Uncomment a1 and b1 and deploy. It works!
Uncomment a2 and b2 and deploy. It works!
Uncomment a3 and b3 and deploy. It doesn't work!
This is on version 1.4.1.
Expected behavior?
It works.
Thanks. This indeed is a huge problem for us right now. Hoping it'll get fixed soon.
@marktani .....Thanks for reporting this bug.
However in my case I am not able to deploy using 2 relations on 2 same types.
In your example above, deploy fails at
"Uncomment a2 and b2 and deploy. It works!"
You don't have that problem?
I was the one that reported this to @marktani, but just want to echo the above - huge problem here too.
@marktani Hi Nilan,
Has this issue been solved in the latest release??
@sorenbs this is still an issue for us.
When adding a third relation. It spits this error. And our relations are each clearly named.

@roycclu, can you please describe exactly what you are doing to receive this error message?
@marktani sure.
In the old graphcool (we are migrating from graphcool to prisma), we had five relations between User and Post:
right now our datamodel.graphql reads like:
type User {
postsLiked: [Post!]! @relation(name: "UsersLikePosts")
postsViewed: [Post!]! @relation(name: "UsersViewedPosts")
...
}
type Post {
likedUsers: [User!]! @relation(name: "UsersLikePosts")
viewedBy: [User!]! @relation(name: "UsersViewedPosts")
...
}
As soon as I add one more relation as below. We get that "There is a relation ambiguity during the migration..." error
type User {
postsCreated: [Post!]! @relation(name: "UserCreatePosts")
postsLiked: [Post!]! @relation(name: "UsersLikePosts")
postsViewed: [Post!]! @relation(name: "UsersViewedPosts")
...
}
type Post {
creator: User @relation(name: "UserCreatePosts")
likedUsers: [User!]! @relation(name: "UsersLikePosts")
viewedBy: [User!]! @relation(name: "UsersViewedPosts")
...
}
You can see that each relation is clearly labeled. There are no other relations between Post and User other than the above listed.
Any idea what's going on? This is a serious issue. We are close to our beta testing. And this is a blocking issue!
Thanks
I cannot reproduce the message following the steps you provided.
Are there any relational fields on User or Post in the initial schema that you didn't share yet?
This is our entire User type. As you can see, there are no other relations between User and Post except for the ones shown.
type User {
id: ID! @unique
firstName: String!
lastName: String!
phone: String! @unique
email: String! @unique
password: String!
privacySetting: PrivacySetting
avatar: File @relation(name: "UserAvatar")
birthday: DateTime
gender: Gender
city: String @default(value: "")
university: String @default(value: "") # TODO make this a relation
highschool: String @default(value: "") # TODO make this a relation
friendRequestsReceived: [User!]! @relation(name: "FriendRequests")
friendRequestsSend: [User!]! @relation(name: "FriendRequests")
friends: [User!]! @relation(name: "Friends")
# posts: [Post!]! @relation(name: "UsersOwnPosts")
# postsCreated: [Post!]! @relation(name: "UserCreatePosts")
# postsCreated: [Post!]! @relation(name: "UserCreatePosts")
postsLiked: [Post!]! @relation(name: "UsersLikePosts")
postsViewed: [Post!]! @relation(name: "UsersViewedPosts")
# postsCollaborated: [Post!]! @relation(name: "UsersCollaboratePosts")
pollOptionsVoted: [PollOption!]! @relation(name: "PollOptionsVotedByUsers")
predictsAgreed: [Predict!]! @relation(name: "UsersAgreePredict")
predictsDisagreed: [Predict!]! @relation(name: "UsersDisagreePredict")
goalSupported: [Goal!]! @relation(name: "UsersSupportGoals")
eventsDeclined: [Event!]! @relation(name: "UsersDeclinedEvents")
eventsGoing: [Event!]! @relation(name: "UsersGoingEvents")
eventsInvited: [Event!]! @relation(name: "UsersInvitedEvents")
comments: [Comment!]! @relation(name: "UserCommentToPost")
notificationReceived: [Notification!]! @relation(name: "ReceiverNotifications")
notificationsSent: [Notification!]! @relation(name: "SenderNotifications")
}
Well, if you manage to reproduce this let me know so I can try to reproduce it as well 馃檪
Hello Nilan,
To follow up, I created a test project that reproduces this issue.
It can be found here: https://github.com/yoorw/multipleRelationExample
You can see the datamodel.graphql file only has 2 types: Link and User.
Currently there are 3 relations between the types.
This causes prisma deploy to fail - error output claims ambiguity.
Prisma Deploys successfully when only 1 relation exists between Link and User.
Are you able to test this out and see what the hangup is?
Thanks,
Hey @yoorw, I cannot reproduce this when deploying against the development cluster, which is on version 1.6.1.
I'll close this, as the originally reported issue is fixed. If you are still experiencing any issues, please create a new report 馃檪
Thanks for following up. It is confirmed with our test project that issue no longer exists after version 1.6.0
However our cluster has issues with upgrading. That is a separate issue.
Thanks, this is tracked here: https://github.com/graphcool/prisma-cloud-feedback/issues/134