问题描述
我从 prisma 1 升级到 prisma 2 时遇到问题。 文档对我来说相当复杂。 我目前有一个使用 :
的小项目 "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"
}
我的棱镜.yml :
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
我使用了脚本:
"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"
},
还有这个graphqlconfig
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-tag
非常感谢你,后端部分对我来说并不简单
编辑
感谢您的回答。很好,@nburk
(连接网址)
以前我不使用“docker-compose”。我使用 prisma 在 Heroku 上部署了我的前 + 后 + 数据库
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}`)
);
prisma_ENDPOINT="https://lprojet-name-db.herokuapp.com/database/prod"
当我使用 npxprisma introspect 我有这个错误
Introspecting based on datasource defined in prisma/schema.prisma …
Error: P1001
无法访问位于 `'localhosh':'5432' 的数据库服务器
请确保您的数据库服务器运行在 'localhost':'5432' 我认为问题来自 schema.prisma,它需要一个以 postgresql:// 开头的 URL,但使用 prisma1 我不需要经历那个。
如何转换旧的数据库 URL(目前托管在 Heroku 上)?
谢谢
编辑 2
我用过
DATABASE_URL=postgres://..........eu-west-1.compute.amazonaws.com:5432/d9ptc61fera9g1
而且我有一个“数据库为空”的错误,但我的数据库不是空的。这个 UR 来自 Heroku 数据库配置
解决方法
来自 Prisma 的尼古拉斯在这里!
我们编写了详尽的升级文档,可引导您完成升级过程。以下是一些您可以遵循的指南:
- How to upgrade:提供总体概述并解释不同的升级策略
- Upgrading the Prisma layer:解释如何使用 Prisma 升级 CLI 调整数据库架构
-
prisma-binding
to SDL-first:解释如何升级您的 GraphQL 架构和解析器
如果您在此过程中有任何疑问,请随时跟进,随时乐意提供帮助:)