Closed divyenduz closed 4 years ago
@divyenduz yup, I think this is it.
The log you link to @divyenduz does not show the problem from the issue.
because
authors_blogs
model has no scalar on it
What does that mean?
The log you link to @divyenduz does not show the problem from the issue.
I don't follow, it has the text "error: TypeError: e.map is not a function", right?
because authors_blogs model has no scalar on it
I meant that the model generated for this table authors_blogs
does not have any scalar fields
model authors_blogs {
author_id authors
blog_id blogs
@@unique([author_id, blog_id], name: "authors_blogs_author_id_blog_id_key")
}
Does that make sense now?
The log you link to @divyenduz does not show the problem from the issue.
I don't follow, it has the text "error: TypeError: e.map is not a function", right?
No, the linked log does not. Current content when I open the file:
/home/runner/work/introspection-engine-output/introspection-engine-output/clients/postgresql_public_test_utils/basic-blog
===start client generation===
2020-03-09T16:07:04.823Z prisma-client {
engineConfig: {
cwd: '/home/runner/work/introspection-engine-output/introspection-engine-output/postgresql_public_test_utils',
debug: false,
datamodelPath: '/home/runner/work/introspection-engine-output/introspection-engine-output/clients/postgresql_public_test_utils/basic-blog/schema.prisma',
prismaPath: undefined,
datasources: [],
generator: {
name: 'client',
provider: 'prisma-client-js',
output: '/home/runner/work/introspection-engine-output/introspection-engine-output/clients/postgresql_public_test_utils/basic-blog',
binaryTargets: [],
config: {}
},
showColors: false,
logLevel: undefined,
logQueries: undefined,
env: {},
flags: []
}
}
===end client generation===
===start seed===
2020-03-09T16:07:04.905Z prisma-client Prisma Client call:
2020-03-09T16:07:04.906Z prisma-client prisma.authors.create({
data: {
name: 'ofosid'
}
})
2020-03-09T16:07:04.906Z prisma-client Generated request:
2020-03-09T16:07:04.906Z prisma-client mutation {
createOneauthors(data: {
name: "ofosid"
}) {
id
name
}
}
2020-03-09T16:07:04.909Z engine {
PRISMA_DML_PATH: '/home/runner/work/introspection-engine-output/introspection-engine-output/clients/postgresql_public_test_utils/basic-blog/schema.prisma',
PORT: '44187',
RUST_BACKTRACE: '1',
RUST_LOG: 'info',
OVERWRITE_DATASOURCES: '[]'
}
2020-03-09T16:07:04.909Z engine {
cwd: '/home/runner/work/introspection-engine-output/introspection-engine-output/postgresql_public_test_utils'
}
2020-03-09T16:07:04.912Z getos { version: 'OpenSSL 1.1.1d 10 Sep 2019\n' }
2020-03-09T16:07:04.912Z getos { ls: '' }
2020-03-09T16:07:04.914Z getos { platform: 'linux', libssl: '1.1.x' }
2020-03-09T16:07:04.914Z plusX Execution permissions of /home/runner/work/introspection-engine-output/introspection-engine-output/clients/postgresql_public_test_utils/basic-blog/runtime/query-engine-debian-openssl-1.1.x are fine
2020-03-09T16:07:04.914Z engine { flags: [ '--enable-raw-queries' ] }
2020-03-09T16:07:04.956Z engine stderr Printing to stderr for debugging
2020-03-09T16:07:04.957Z engine stderr Listening on 127.0.0.1:44187
2020-03-09T16:07:04.958Z engine stdout {
timestamp: 'Mar 09 16:07:04.958',
level: 'INFO',
target: 'quaint::pooled',
fields: { message: 'Starting a postgresql pool with 5 connections.' }
}
2020-03-09T16:07:04.963Z engine stdout {
timestamp: 'Mar 09 16:07:04.962',
level: 'INFO',
target: 'prisma::server',
fields: {
message: 'Started http server on 127.0.0.1:44187',
'log.target': 'prisma::server',
'log.module_path': 'prisma::server',
'log.file': 'query-engine/prisma/src/server.rs',
'log.line': 95
}
}
2020-03-09T16:07:06.166Z prisma-client Prisma Client call:
2020-03-09T16:07:06.166Z prisma-client prisma.authors.create({
data: {
name: 'daej'
}
})
2020-03-09T16:07:06.166Z prisma-client Generated request:
2020-03-09T16:07:06.166Z prisma-client mutation {
createOneauthors(data: {
name: "daej"
}) {
id
name
}
}
2020-03-09T16:07:06.792Z prisma-client Prisma Client call:
2020-03-09T16:07:06.792Z prisma-client prisma.blogs.create({
data: {
name: 'wocu',
viewcount: 888
}
})
2020-03-09T16:07:06.792Z prisma-client Generated request:
2020-03-09T16:07:06.792Z prisma-client mutation {
createOneblogs(data: {
name: "wocu"
viewcount: 888
}) {
id
name
viewcount
}
}
2020-03-09T16:07:07.420Z prisma-client Prisma Client call:
2020-03-09T16:07:07.420Z prisma-client prisma.blogs.create({
data: {
name: 'gafgohrak',
viewcount: -1908
}
})
2020-03-09T16:07:07.421Z prisma-client Generated request:
2020-03-09T16:07:07.421Z prisma-client mutation {
createOneblogs(data: {
name: "gafgohrak"
viewcount: -1908
}) {
id
name
viewcount
}
}
2020-03-09T16:07:08.049Z prisma-client Prisma Client call:
2020-03-09T16:07:08.049Z prisma-client prisma.authors_blogs.create({
data: {
author_id: {
connect: {
id: 1
}
},
blog_id: {
connect: {
id: 1
}
}
},
include: {
author_id: true,
blog_id: true
}
})
2020-03-09T16:07:08.049Z prisma-client Generated request:
2020-03-09T16:07:08.049Z prisma-client mutation {
createOneauthors_blogs(data: {
author_id: {
connect: {
id: 1
}
}
blog_id: {
connect: {
id: 1
}
}
}) {
author_id {
id
name
}
blog_id {
id
name
viewcount
}
}
}
2020-03-09T16:07:09.392Z prisma-client Prisma Client call:
2020-03-09T16:07:09.392Z prisma-client prisma.authors_blogs.create({
data: {
author_id: {
connect: {
id: 1
}
},
blog_id: {
connect: {
id: 1
}
}
},
include: {
author_id: true,
blog_id: true
}
})
2020-03-09T16:07:09.392Z prisma-client Generated request:
2020-03-09T16:07:09.392Z prisma-client mutation {
createOneauthors_blogs(data: {
author_id: {
connect: {
id: 1
}
}
blog_id: {
connect: {
id: 1
}
}
}) {
author_id {
id
name
}
blog_id {
id
name
viewcount
}
}
}
2020-03-09T16:07:10.205Z printStack callsite Error
at Object.s [as authors_blogs] (/home/runner/work/introspection-engine-output/introspection-engine-output/clients/postgresql_public_test_utils/basic-blog/runtime/index.js:1:44468)
at Object.n.<computed> [as create] (/home/runner/work/introspection-engine-output/introspection-engine-output/clients/postgresql_public_test_utils/basic-blog/runtime/index.js:1:46094)
at /home/runner/work/introspection-engine-output/prisma-test-utils/src/static/seed.ts:924:45
at Generator.next (<anonymous>)
at /home/runner/work/introspection-engine-output/prisma-test-utils/dist/static/seed.js:8:71
at new Promise (<anonymous>)
at __awaiter (/home/runner/work/introspection-engine-output/prisma-test-utils/dist/static/seed.js:4:12)
at iterate (/home/runner/work/introspection-engine-output/prisma-test-utils/dist/static/seed.js:633:24)
at /home/runner/work/introspection-engine-output/prisma-test-utils/src/static/seed.ts:947:30
at Generator.next (<anonymous>)
PrismaClientKnownRequestError:
Invalid `prisma.authors_blogs.create()` invocation in
/home/runner/work/introspection-engine-output/prisma-test-utils/src/static/seed.ts:924:45
Unique constraint failed on the fields: (`author_id`,`blog_id`)
at PrismaClientFetcher.request (/home/runner/work/introspection-engine-output/introspection-engine-output/clients/postgresql_public_test_utils/basic-blog/runtime/index.js:1:47071)
at processTicksAndRejections (internal/process/task_queues.js:97:5) {
code: 'P2002',
meta: { target: [ 'author_id', 'blog_id' ] }
}
===end seed===
2020-03-09T16:07:10.208Z engine Stopping Prisma engine
2020-03-09T16:07:10.242Z getos { version: 'OpenSSL 1.1.1d 10 Sep 2019\n' }
2020-03-09T16:07:10.242Z getos { ls: '' }
2020-03-09T16:07:10.242Z getos { platform: 'linux', libssl: '1.1.x' }
Does that make sense now?
No. The "Logs from test-utils just before the failure:" snippet you posted above mentions createOneauthors
, which points to model authors
. authors_blogs
has an @@unique
which means it works with P2, and I see no reason why test-utils
should not be able to (unless there is some limitation that was not mentioned here yet).
No, the linked log does not.
The linked logged is a link on the branch, not a permalink, its contents are subjected to change. A permalink to a failing log is this one.
In the future, I will link both permalink and branch link (to check quickly, if something is fixed)
snippet you posted above mentions createOneauthors, which points to model authors
That is (or was) the correct line of the error, let me extract the query from the logs in my first comment to explain further:
As you can see in this image, the generated GraphQL query for the model authors was incorrect.
Doesn't this mean that test-utils is creating a Prisma Client call with missing data, which gets transformed into a broken query to the QE which is then somehow causing the error in Prisma Client (probably because the QE is returning something unexpected)?
The log should include the Prisma Client call now as well. We should rerun this so we have all the context. (Related: The QE can also log all the queries it is sending, right? We should probably have that logged here as well to understand what it is trying to do)
I think this mutation log is already coming from client and not test-utils. I will post the client call here if I see it again or close this issue if this is no longer present in any logs in this form.
I think this mutation log is already coming from client and not test-utils.
Yes, but I expect this to be caused by what test-utils sends into Client - not Client messing something up really.
I agree with that, hence, I created the issue here. I will clean it up as I have more information.
This issue is not present anymore on the latest run.
For the schema: https://github.com/prisma/database-schema-examples/blob/master/postgres/basic-blog/schema.sql
Logs from test-utils just before the failure:
This is most likely happening because
authors_blogs
model has no scalar on it and test utils produces an incorrect client call for that (empty selection set).@maticzav does this issue description make sense?
Internal notes:
Test utils database(s) affected: