首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用阿波罗+ GraphQL升级Prisma 1到Prisma 2

用阿波罗+ GraphQL升级Prisma 1到Prisma 2
EN

Stack Overflow用户
提问于 2021-04-08 06:57:08
回答 1查看 336关注 0票数 2

从Prisma 1升级到Prisma 2有问题,文档对我来说很复杂。我目前有一个小项目使用:

代码语言:javascript
复制
 "dependencies": {
    "bcryptjs": "2.4.3",
    "graphql-yoga": "1.18.3",
    "jsonwebtoken": "8.5.1",
    "prisma-binding": "1.5.19"
  },
  "devDependencies": {
    "dotenv": "5.0.1",
    "graphql-cli": "2.17.0",
    "nodemon": "1.19.4",
    "npm-run-all": "4.1.5",
    "prisma": "^1.34.10"
  }

我的prisma.yml:

代码语言:javascript
复制
endpoint: ${env:PRISMA_ENDPOINT}

secret: ${env:PRISMA_SECRET}

datamodel: datamodel.graphql

hooks:
  post-deploy:
    - prisma generate

generate:
  - generator: graphql-schema
    output: ../src/generated/prisma.graphql

我使用了脚本:

代码语言:javascript
复制
  "scripts": {
    "start:dev": "nodemon -e js,graphql -x node -r dotenv/config src/index.js",
    "start": "node src/index.js",
    "debug": "nodemon -e js,graphql -x node --inspect -r dotenv/config src/index.js",
    "playground": "graphql playground",
    "dev": "npm-run-all --parallel start playground",
    "deploy": "prisma1 deploy --env-file .env"
  },

和这个图

代码语言:javascript
复制
projects:
  app:
    schemaPath: "src/schema.graphql"
    extensions:
      endpoints:
        default: "http://localhost:4000"
  prisma:
    schemaPath: "src/generated/prisma.graphql"
    extensions:
      prisma: database/prisma.yml

我怎样才能更新prisma?知道我的前端是基于VueJS的,ApolloClient,graphlq,graphql-标记

非常感谢你,后端部分对我来说并不简单。

这是我的树结构

E D I T

谢谢你的分析。不错,@nburk

但是我在第三步遇到了一个问题:https://www.prisma.io/docs/guides/upgrade-guides/upgrade-from-prisma-1/upgrading-the-prisma-layer-postgres

(连接URL)

以前我不使用“船坞-写作”。我用Prisma在Heroku部署了我的前+后+ DB

代码语言:javascript
复制
const { Prisma } = require("prisma-binding");
const resolvers = require("./resolvers");

// GraphQL Yoga Server
const server = new GraphQLServer({
  typeDefs: "src/schema.graphql",
  resolvers,
  context: (req) => ({
    ...req,
    db: new Prisma({
      typeDefs: "src/generated/prisma.graphql", // DB Prisma Schema
      endpoint: process.env.PRISMA_ENDPOINT, // Prisma Service
      secret: process.env.PRISMA_SECRET, // Prisma Secret
      debug: true,
    }),
  }),
});


server.start(() =>
  console.log(`Server is running on ${process.env.PRISMA_ENDPOINT}`)
);

托管在Heroku上的DB (.env文件)

代码语言:javascript
复制
PRISMA_ENDPOINT="https://lprojet-name-db.herokuapp.com/database/prod"

当我使用npx prisma自省时,我有这个错误

代码语言:javascript
复制
Introspecting based on datasource defined in prisma/schema.prisma …
Error: P1001

无法到达‘localhosh’:‘5432’的数据库服务器

请确保您的数据库服务器在'localhost':'5432‘上运行--我认为问题来自于schema.prisma,它需要一个url,以postgresql://开头,但是对于Prisma1,我不需要再看它。

如何转换旧的DB (目前托管在Heroku上)?

谢谢

编辑2

我用过

代码语言:javascript
复制
DATABASE_URL=postgres://..........eu-west-1.compute.amazonaws.com:5432/d9ptc61fera9g1

我有一个“数据库空”错误,但我的数据库不是空的。这个UR来自Heroku数据库Config

EN

回答 1

Stack Overflow用户

发布于 2021-04-08 07:27:22

我是普丽斯马的尼古拉斯!

我们已经编写了广泛的升级文档,带领您完成升级过程。以下是一些您可以遵循的指南:

  1. 如何升级:提供了总体概述,并解释了不同的升级策略
  2. 提升Prisma层:解释如何使用Prisma升级CLI调整数据库模式
  3. 至SDL-第一:解释如何升级GraphQL架构和解析器

如果你沿途有任何问题,随时可以跟进,随时乐意提供帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66998762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档