prisma1
prisma1 copied to clipboard
SyntaxError ';' expected
Describe the bug Introspection crashes while intespecting a MySQL database.
To Reproduce Steps to reproduce the behavior:
prisma init hello-world- Add configuration to connect to db
- Select existing data
- Choose Typescript or Javascript as programming language
- Outputs the error, but does generate files
Expected behavior Introspects without errors
Screenshots N/A
Versions (please complete the following information):
- Connector:
MySQL - Prisma Server:
1.33.0 prismaCLI:prisma/1.33.0 (darwin-x64) node-v11.14.0- OS:
OS X Mojave - Table type: InnoDB
- Table encoding: cp1252 West European (latin1)
- Table collation: latin1_swedish_ci
Additional context
The table where the introspection fails is has only two columns, role_id and permission_id, both of type int. Oddly, there is no archived column in that table. There are archived columns on other tables.
Also, there are 48tables in the database, but the introspection is stating that the are 63tables.
With enhanced debug mode set on the cli outputs the following
prisma init hello-world
command Failed to get the definition file +0ms
command Error: Couldn’t find `prisma.yml` file. Are you in the right directory? +2ms
init prisma init workflow called without existing directory. +0ms
init Error: ENOENT: no such file or directory, scandir '/Users/bobo/Projects/Prisma/hello-world/' +1ms
client Sending query to cloud api +0ms
client https://api2.cloud.prisma.sh +0ms
client {
client me {
client id
client name
client login {
client email
client }
client }
client } +0ms
client undefined +0ms
client { headers: {}, agent: undefined } +0ms
endpoint-dialog EndpointDialog workflow called without existing directory. +1s
endpoint-dialog Error: ENOENT: no such file or directory, scandir '/Users/bobo/Projects/Prisma/hello-world/' +0ms
? Set up a new Prisma server or deploy to an existing server? Use existing database
? What kind of database do you want to deploy to? MySQL
? Does your database contain existing data? Yes
? Enter database host 192.168.99.100
? Enter database port 30306
? Enter database user root
? Enter database password [hidden]
Introspecting database bobo... 1.1s
Created datamodel definition based on 63 tables.
client Sending query to cluster custom +1m
client http://localhost:4466/management +0ms
client
client query($name: String! $stage: String!) {
client project(name: $name stage: $stage) {
client name
client stage
client }
client }
client +0ms
client { name: 'default', stage: 'default' } +0ms
client Sending query to cluster custom +1ms
client http://localhost:4466/management +0ms
client
client query($name: String! $stage: String!) {
client project(name: $name stage: $stage) {
client name
client stage
client }
client }
client +0ms
client { name: 'default', stage: 'default' } +0ms
? Select the programming language for the generated Prisma client Prisma TypeScript Client
init prisma init: writing docker-compose.yml +1m
Created 3 new files:
prisma.yml Prisma service definition
datamodel.prisma GraphQL SDL-based datamodel (foundation for database)
docker-compose.yml Docker configuration file
Next steps:
1. Open folder: cd hello-world
2. Start your Prisma server: docker-compose up -d
3. Deploy your Prisma service: prisma deploy
4. Read more about introspection:
http://bit.ly/prisma-introspection
init { isPackaged: false } +1ms
SyntaxError: ';' expected. (644:8)
642 | export type RolePermissionOrderByInput =
643 |
> 644 | export type UserOrderByInput = 'id_ASC' |
| ^
645 | 'id_DESC' |
646 | 'archived_ASC' |
647 | 'archived_DESC' |
at e (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/parser-typescript.js:1:205)
at Object.parse (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/parser-typescript.js:1:2172485)
at Object.parse$2 [as parse] (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/index.js:10639:19)
at coreFormat (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/index.js:13856:23)
at format (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/index.js:14115:73)
at formatWithCursor (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/index.js:14131:12)
at /Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/index.js:42399:15
at Object.format (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/index.js:42418:12)
at TypescriptGenerator.format (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-client-lib/src/codegen/generators/typescript-client.ts:176:21)
at TypescriptGenerator.render (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-client-lib/src/codegen/generators/typescript-client.ts:204:17)
at GenerateCommand.<anonymous> (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/src/commands/generate/generate.ts:196:28)
at step (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:45:23)
at Object.next (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:26:53)
at /Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:20:71
at new Promise (<anonymous>)
at __awaiter (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:16:12)
at GenerateCommand.generateTypescript (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:205:16)
at GenerateCommand.<anonymous> (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/src/commands/generate/generate.ts:130:22)
at step (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:45:23)
at Object.next (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:26:53)
at fulfilled (/Users/bobo/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:17:58)
2019-05-23T21:48:32.443Z output Exiting with code: 1
Generating schema... 188ms
After converting the encoding to utf8 and changing the archived columns to be int from tinyint. I get the same error, but the call stack shows a timeout.
SyntaxError: ';' expected. (644:8)
642 | export type RolePermissionOrderByInput =
643 |
> 644 | export type UserOrderByInput = 'id_ASC' |
| ^
645 | 'id_DESC' |
646 | 'archived_ASC' |
647 | 'archived_DESC' |
at e (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/parser-typescript.js:1:205)
at Object.parse (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/parser-typescript.js:1:2172485)
at Object.parse$2 [as parse] (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/index.js:10639:19)
at coreFormat (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/index.js:13856:23)
at format (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/index.js:14115:73)
at formatWithCursor (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/index.js:14131:12)
at /Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/index.js:42399:15
at Object.format (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prettier/index.js:42418:12)
at TypescriptGenerator.format (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-client-lib/src/codegen/generators/typescript-client.ts:176:21)
at TypescriptGenerator.render (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-client-lib/src/codegen/generators/typescript-client.ts:204:17)
at GenerateCommand.<anonymous> (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/src/commands/generate/generate.ts:196:28)
at step (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:45:23)
at Object.next (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:26:53)
at /Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:20:71
at new Promise (<anonymous>)
at __awaiter (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:16:12)
at GenerateCommand.generateTypescript (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:205:16)
at GenerateCommand.<anonymous> (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/src/commands/generate/generate.ts:130:22)
at step (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:45:23)
at Object.next (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:26:53)
at fulfilled (/Users/bob/.nvm/versions/node/v11.14.0/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:17:58)
2019-05-23T22:57:36.611Z util timed out
2019-05-23T22:57:36.611Z output Exiting with code: 0
I found the same problem
Same problem!
Same versions of Prisma?
Yes!
anyone know how i can fix this issue?
Resolved this by defining databaseType in prisma.yml. In my case, I'm using Mongo.
# The endpoint of your Prisma API (deployed to a Prisma Sandbox).
endpoint: ${env:PRISMA_ENDPOINT}
# The file containing the definition of your data model.
datamodel:
- datamodel/users.prisma
- datamodel/school.prisma
- datamodel/member.prisma
- datamodel/group.prisma
- datamodel/curriculum.prisma
- datamodel/pillar.prisma
- datamodel/question.prisma
- datamodel/scheduler.prisma
- datamodel/userCurriculum.prisma
- datamodel/userPillar.prisma
- datamodel/personalSurvey.prisma
- datamodel/score.prisma
- datamodel/survey.prisma
- datamodel/surveyGroup.prisma
- datamodel/wblibrary.prisma
- datamodel/otp.prisma
# Specifies the type of the database
databaseType: document
# Generate
generate:
- generator: typescript-client
output: ../src/generated/prisma-client/
- generator: graphql-schema
output: ../src/generated/prisma.graphql
hooks:
post-deploy:
- npx nexus-prisma-generate --client ./src/generated/prisma-client --output ./src/generated/nexus-prisma # Runs the codegen tool from nexus-prisma.
secret: ${env:PRISMA_SECRET}
Resolved this by defining
databaseTypeinprisma.yml. In my case, I'm using Mongo.# The endpoint of your Prisma API (deployed to a Prisma Sandbox). endpoint: ${env:PRISMA_ENDPOINT} # The file containing the definition of your data model. datamodel: - datamodel/users.prisma - datamodel/school.prisma - datamodel/member.prisma - datamodel/group.prisma - datamodel/curriculum.prisma - datamodel/pillar.prisma - datamodel/question.prisma - datamodel/scheduler.prisma - datamodel/userCurriculum.prisma - datamodel/userPillar.prisma - datamodel/personalSurvey.prisma - datamodel/score.prisma - datamodel/survey.prisma - datamodel/surveyGroup.prisma - datamodel/wblibrary.prisma - datamodel/otp.prisma # Specifies the type of the database databaseType: document # Generate generate: - generator: typescript-client output: ../src/generated/prisma-client/ - generator: graphql-schema output: ../src/generated/prisma.graphql hooks: post-deploy: - npx nexus-prisma-generate --client ./src/generated/prisma-client --output ./src/generated/nexus-prisma # Runs the codegen tool from nexus-prisma. secret: ${env:PRISMA_SECRET}
this solved the issue for me as well! very odd that this is not automatically set when using mongo db connector
error message
SyntaxError: ';' expected. (125:8)
123 | export type UserSettingsOrderByInput =
124 |
> 125 | export type NewsOrderByInput = 'title_ASC' |
| ^
126 | 'title_DESC' |
127 | 'content_ASC' |
128 | 'content_DESC' |
at e (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/parser-typescript.js:1:267)
at Object.parse (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/parser-typescript.js:1:2172547)
at Object.parse$2 [as parse] (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/index.js:10639:19)
at coreFormat (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/index.js:13856:23)
at format (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/index.js:14115:73)
at formatWithCursor (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/index.js:14131:12)
at /snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/index.js:42399:15
at Object.format (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/index.js:42418:12)
at TypescriptGenerator.format (/snapshot/cli/node_modules/prisma-client-lib/src/codegen/generators/typescript-client.ts:176:21)
at TypescriptGenerator.render (/snapshot/cli/node_modules/prisma-client-lib/src/codegen/generators/typescript-client.ts:204:17)
at GenerateCommand.<anonymous> (/snapshot/cli/node_modules/prisma-cli-core/src/commands/generate/generate.ts:196:28)
at step (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:45:23)
at Object.f [as next] (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:26:53)
at __awaiter (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:20:71)
at new Promise (<anonymous>)
at __awaiter (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:16:12)
at GenerateCommand.generateTypescript (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:205:16)
at GenerateCommand.<anonymous> (/snapshot/cli/node_modules/prisma-cli-core/src/commands/generate/generate.ts:130:22)
at step (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:45:23)
at Object.f [as next] (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:26:53)
at fulfilled (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:17:58)
output Exiting with code: 1 +0ms
prisma.yml
endpoint: http://localhost:4466
datamodel: datamodel.graphql
databaseType: document
generate:
- generator: typescript-client
output: ../src/generated/prisma-client/
- generator: graphql-schema
output: ../src/generated/schema.graphql
datamodel.graqhql
type User {
id: ID! @id
name: String!
token: String @unique
robot: Boolean
settings: UserSettings
}
type UserSettings{
favoriteNews: [News]
}
type News{
title: String!
content: String!
provider: String
time: DateTime!
crawlingAt: DateTime! @createdAt
source: ContentSource! @default(value:NAVER)
}
type NewsMeta @embedded{
summary: String
subject: String
group: NewsGroup
spamMarks: [SpamMark]
category: NewsCategory
categories: [NewsCategory]
tags: [String]
updateTransactions: [UpdateTransaction]
}
type NewsGroup{
subject: String
time: DateTime
createdBy: User
news: [News]
}
type UpdateTransaction{
operation: UpdateTransactionOperation
}
type SpamMark @embedded{
by: User
at: DateTime @createdAt
spam: Boolean
reason: String
}
enum UpdateTransactionOperation{
REPLACED_SOURCE
INDEXED
ANALYZED
ELSE
}
enum ContentSource {
EBEST
NAVER
ELSE
}
enum NewsCategory{
WEATHER
UNCATEGORIZED
}
still same issue with databaseType: document
error message
SyntaxError: ';' expected. (125:8) 123 | export type UserSettingsOrderByInput = 124 | > 125 | export type NewsOrderByInput = 'title_ASC' | | ^ 126 | 'title_DESC' | 127 | 'content_ASC' | 128 | 'content_DESC' | at e (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/parser-typescript.js:1:267) at Object.parse (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/parser-typescript.js:1:2172547) at Object.parse$2 [as parse] (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/index.js:10639:19) at coreFormat (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/index.js:13856:23) at format (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/index.js:14115:73) at formatWithCursor (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/index.js:14131:12) at /snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/index.js:42399:15 at Object.format (/snapshot/cli/node_modules/prisma-client-lib/node_modules/prettier/index.js:42418:12) at TypescriptGenerator.format (/snapshot/cli/node_modules/prisma-client-lib/src/codegen/generators/typescript-client.ts:176:21) at TypescriptGenerator.render (/snapshot/cli/node_modules/prisma-client-lib/src/codegen/generators/typescript-client.ts:204:17) at GenerateCommand.<anonymous> (/snapshot/cli/node_modules/prisma-cli-core/src/commands/generate/generate.ts:196:28) at step (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:45:23) at Object.f [as next] (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:26:53) at __awaiter (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:20:71) at new Promise (<anonymous>) at __awaiter (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:16:12) at GenerateCommand.generateTypescript (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:205:16) at GenerateCommand.<anonymous> (/snapshot/cli/node_modules/prisma-cli-core/src/commands/generate/generate.ts:130:22) at step (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:45:23) at Object.f [as next] (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:26:53) at fulfilled (/snapshot/cli/node_modules/prisma-cli-core/dist/commands/generate/generate.js:17:58) output Exiting with code: 1 +0msprisma.yml
endpoint: http://localhost:4466 datamodel: datamodel.graphql databaseType: document generate: - generator: typescript-client output: ../src/generated/prisma-client/ - generator: graphql-schema output: ../src/generated/schema.graphqldatamodel.graqhql
type User { id: ID! @id name: String! token: String @unique robot: Boolean settings: UserSettings } type UserSettings{ favoriteNews: [News] } type News{ title: String! content: String! provider: String time: DateTime! crawlingAt: DateTime! @createdAt source: ContentSource! @default(value:NAVER) } type NewsMeta @embedded{ summary: String subject: String group: NewsGroup spamMarks: [SpamMark] category: NewsCategory categories: [NewsCategory] tags: [String] updateTransactions: [UpdateTransaction] } type NewsGroup{ subject: String time: DateTime createdBy: User news: [News] } type UpdateTransaction{ operation: UpdateTransactionOperation } type SpamMark @embedded{ by: User at: DateTime @createdAt spam: Boolean reason: String } enum UpdateTransactionOperation{ REPLACED_SOURCE INDEXED ANALYZED ELSE } enum ContentSource { EBEST NAVER ELSE } enum NewsCategory{ WEATHER UNCATEGORIZED }still same issue with
databaseType: document
problem was not having id: ID! @id to type models
https://github.com/prisma/prisma/issues/4837