Good evening, I am working on following the <Prism...
# orm-help
k
Good evening, I am working on following the Prisma tutorial. However I am confused about a couple of things. When I run
npx prisma generate --schema ./prisma/schema.prisma
I get an error saying
Syntax Error: Unexpected Name "datasource"
So then I ran the command like this part of the docs, but encountered an unknown flag
--schema
error! It has been really hard to figure out what is going on via Google. I have a folder in the root of my project called
prisma
that contains my
datamodel.prisma
prisma.yml
. Those files look like this:
Copy code
# datamodel.prisma
datasource postgresql {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

generator client {
  provider = "prisma-client-js"
}

model Schedule {
    id Int @id @default(autoincrement())
    scheduledPhase ScheduledPhase @relation(fields: [phaseId], references: [id])
    phaseId Int
    name String?
    description String?
    startDate DateTime
    endDate DateTime

    @@index([startDate, endDate])
}

model ScheduledPhase {
    id Int @id @default(autoincrement())
    name String
    description String
    schedules Schedule[]
}

# prisma.yml
endpoint: ${env:PRISMA_ENDPOINT}
datamodel: datamodel.prisma
secret: ${env:PRISMA_SECRET}

generate:
  - generator: javascript-client
    output: ./src/generated/prisma-client/

hooks:
  post-deploy:
    - graphql get-schema -p prisma
Could I get some help figuring out how to get past this barrier, please? Thank you for any help in advance. This is my first time using Prisma and I think it would be really cool, if I can get it up and running. Debug output:
Copy code
WARNING: Error: [WARNING] in /Volumes/DevDench/development/prisma-test/planning/prisma/prisma.yml: A valid environment variable to satisfy the declaration 'env:PRISMA_ENDPOINT' could not be found.
    at /Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-cli-engine/src/Output/index.ts:227:41
    at SimpleAction.ActionBase.pause (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-cli-engine/src/Output/actions/ActionBase.ts:81:22)
    at Output.warn (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-cli-engine/src/Output/index.ts:224:17)
    at Variables.warnIfNotFound (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-yml/src/Variables.ts:265:16)
    at /Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-yml/src/Variables.ts:107:20
    at bound (domain.js:426:14)
    at runBound (domain.js:439:12)
    at tryCatcher (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (internal/timers.js:456:21)
    at process.topLevelDomainCallback (domain.js:137:15)
WARNING: Error: [WARNING] in /Volumes/DevDench/development/prisma-test/planning/prisma/prisma.yml: A valid environment variable to satisfy the declaration 'env:PRISMA_SECRET' could not be found.
    at /Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-cli-engine/src/Output/index.ts:227:41
    at SimpleAction.ActionBase.pause (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-cli-engine/src/Output/actions/ActionBase.ts:81:22)
    at Output.warn (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-cli-engine/src/Output/index.ts:224:17)
    at Variables.warnIfNotFound (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-yml/src/Variables.ts:265:16)
    at /Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-yml/src/Variables.ts:107:20
    at bound (domain.js:426:14)
    at runBound (domain.js:439:12)
    at tryCatcher (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (internal/timers.js:456:21)
    at process.topLevelDomainCallback (domain.js:137:15)

Generating schema... !
Syntax Error: Unexpected Name "datasource"

GraphQL request:1:1
1 | datasource postgresql {
  | ^
2 |   provider = "postgresql"
    at syntaxError (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/graphql/error/syntaxError.js:15:10)
    at Parser.unexpected (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/graphql/language/parser.js:1463:41)
    at Parser.parseDefinition (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/graphql/language/parser.js:157:16)
    at Parser.many (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/graphql/language/parser.js:1518:26)
    at Parser.parseDocument (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/graphql/language/parser.js:111:25)
    at Object.parse (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/graphql/language/parser.js:36:17)
    at RelationalParser.DefaultParser.parseFromSchemaString (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-datamodel/src/datamodel/parser/parser.ts:31:20)
    at parseInternalTypes (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-generate-schema/src/index.ts:21:45)
    at generateCRUDSchema (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-generate-schema/src/index.ts:34:11)
    at Object.generateCRUDSchemaString [as default] (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-generate-schema/src/index.ts:64:22)
    at GenerateCommand.<anonymous> (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-cli-core/src/commands/generate/generate.ts:89:48)
    at step (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:45:23)
    at Object.next (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:26:53)
    at fulfilled (/Users/gkxdhr1/.nvm/versions/node/v12.16.1/lib/node_modules/prisma/node_modules/prisma-cli-core/dist/commands/generate/generate.js:17:58)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:15435) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
  output Exiting with code: 1 +0ms
It's weird, when I run
npx prisma init
it generates a datamodel.prisma and prisma.yml file. The datamodel.prisma file uses the keyword
type
instead of
model
to define the types. Then when I run
prisma deploy
without changing anything it deploys the generic User example that it created perfectly fine. I've tried to search for this syntax, but can't find anything in Prisma's docs. When I try to just change model to type it also breaks when trying to deploy. I am totally lost.
j
The project you are working in seems to have Prisma 1, npm pakcage
prisma
as a dependency.
🙌 1
The project should have
@prisma/cli
, which is the npm package of Prisma 2.
🙌 1
k
Oh, thank you, I will change that and see if it makes a difference.
That worked! Thanks. I know with Prisma 1 you could deploy to the management endpoint, I am using the Docker image for that in development to test things, but it looks like the new
@prisma/cli
does not support the
deploy
command. So does
generate
still generate all the appropriate resolvers, like it used to? If that's something basic I should know from the docs, I'd be happy with a link that tells me how it works.
r
Hey @Kevin Dench 👋 Prisma 2 unlike Prisma 1 doesn’t generate any GraphQL resolvers as it can be used for either GraphQL or REST. Just define your schema and get generated types to access that database. Also there’s no separate server, so no deploy command. You would just need to deploy it like any normal NodeJS application
👍 2
k
Thanks! That clears it up nicely. I appreciate the help.
💯 1