@prisma/client 还没有初始化。请运行"prisma generate"再尝试导入
@prisma/client did not initialize yet. Please run "prisma generate" and try to import it again
我正在使用 prisma、postgres、docker、kubernets。
npx prisma migrate dev 工作。
和 npx prisma generate 产生以下输出:
✔ Generated Prisma Client (2.23.0) to ./node_modules/@prisma/client in 68ms
You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
但是当我尝试在我的路由文件中使用时产生错误:
新-route.ts
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
我的docker文件:
FROM node:alpine
WORKDIR /app
COPY package.json .
RUN npm install --only=prod
COPY . .
CMD ["npm", "start"]
我在开发时通常不会为此使用 docker,但每次我在 schema.prisma
中更改某些内容并且必须使用 npx prisma generate
时,我都会遇到这个问题。我的解决方案是再次重新启动节点应用程序 运行 npm start
。也许如果你重新启动你的容器它可能会工作。
如果您在 kubernets pod 中,则使用终端访问 pod,然后给出生成命令
kubectl exec -it pod_name sh
npx prisma generate
我知道这已被标记为已解决,但我只是想与感兴趣的人分享我的设置。
Docker 文件
# Build image
FROM node:16.13-alpine as builder
WORKDIR /app
# Not sure if you will need this
# RUN apk add --update openssl
COPY package*.json ./
RUN npm ci --quiet
COPY ./prisma prisma
COPY ./src src
RUN npm run build
# Production image
FROM node:16.13-alpine
WORKDIR /app
ENV NODE_ENV production
COPY package*.json ./
RUN npm ci --only=production --quiet
COPY --chown=node:node --from=builder /app/prisma /app/prisma
COPY --chown=node:node --from=builder /app/src /app/src
USER node
EXPOSE 8080
CMD ["node", "src/index.js"]
package.json
{
"name": "example",
"description": "",
"version": "0.1.0",
"scripts": {
"generate": "npx prisma generate",
"deploy": "npx prisma migrate deploy",
"dev": "npm run generate && nodemon --watch \"src/**\" --ext \"js,json\" --exec \"node src/index.js\"",
"build": "npm run generate",
"start": "npm run build && node build/index.js"
},
"prisma": {
"schema": "prisma/schema.prisma"
},
"dependencies": {
"@prisma/client": "^3.6.0"
},
"devDependencies": {
"@tsconfig/node16": "^1.0.2",
"@types/node": "^16.11.12",
"nodemon": "^2.0.15",
"prisma": "^3.6.0"
}
}
我在 Kubernetes 中 运行 这个。为了使数据库和迁移顺利进行,我 运行 一个 运行 是 prisma migrate deploy
.
的 initContainer
apiVersion: apps/v1
kind: Deployment
metadata:
name: EXAMPLE
spec:
replicas: 1
selector:
matchLabels:
app: EXAMPLE
strategy:
rollingUpdate:
maxSurge: 100%
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
labels:
app: EXAMPLE
spec:
containers:
image: DOCKER_IMAGE
imagePullPolicy: IfNotPresent
name: SERVICE_NAME
ports:
- containerPort: 8080
name: http
protocol: TCP
initContainers:
- command:
- npm
- run
- deploy
image: DOCKER_IMAGE
imagePullPolicy: IfNotPresent
name: database-migrate-deploy
(这是一个实时服务,我只是复制并删除了所有不必要的东西)
我希望这对某人有用
我正在使用 prisma、postgres、docker、kubernets。
npx prisma migrate dev 工作。
和 npx prisma generate 产生以下输出:
✔ Generated Prisma Client (2.23.0) to ./node_modules/@prisma/client in 68ms
You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
但是当我尝试在我的路由文件中使用时产生错误:
新-route.ts
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
我的docker文件:
FROM node:alpine
WORKDIR /app
COPY package.json .
RUN npm install --only=prod
COPY . .
CMD ["npm", "start"]
我在开发时通常不会为此使用 docker,但每次我在 schema.prisma
中更改某些内容并且必须使用 npx prisma generate
时,我都会遇到这个问题。我的解决方案是再次重新启动节点应用程序 运行 npm start
。也许如果你重新启动你的容器它可能会工作。
如果您在 kubernets pod 中,则使用终端访问 pod,然后给出生成命令
kubectl exec -it pod_name sh
npx prisma generate
我知道这已被标记为已解决,但我只是想与感兴趣的人分享我的设置。
Docker 文件
# Build image
FROM node:16.13-alpine as builder
WORKDIR /app
# Not sure if you will need this
# RUN apk add --update openssl
COPY package*.json ./
RUN npm ci --quiet
COPY ./prisma prisma
COPY ./src src
RUN npm run build
# Production image
FROM node:16.13-alpine
WORKDIR /app
ENV NODE_ENV production
COPY package*.json ./
RUN npm ci --only=production --quiet
COPY --chown=node:node --from=builder /app/prisma /app/prisma
COPY --chown=node:node --from=builder /app/src /app/src
USER node
EXPOSE 8080
CMD ["node", "src/index.js"]
package.json
{
"name": "example",
"description": "",
"version": "0.1.0",
"scripts": {
"generate": "npx prisma generate",
"deploy": "npx prisma migrate deploy",
"dev": "npm run generate && nodemon --watch \"src/**\" --ext \"js,json\" --exec \"node src/index.js\"",
"build": "npm run generate",
"start": "npm run build && node build/index.js"
},
"prisma": {
"schema": "prisma/schema.prisma"
},
"dependencies": {
"@prisma/client": "^3.6.0"
},
"devDependencies": {
"@tsconfig/node16": "^1.0.2",
"@types/node": "^16.11.12",
"nodemon": "^2.0.15",
"prisma": "^3.6.0"
}
}
我在 Kubernetes 中 运行 这个。为了使数据库和迁移顺利进行,我 运行 一个 运行 是 prisma migrate deploy
.
apiVersion: apps/v1
kind: Deployment
metadata:
name: EXAMPLE
spec:
replicas: 1
selector:
matchLabels:
app: EXAMPLE
strategy:
rollingUpdate:
maxSurge: 100%
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
labels:
app: EXAMPLE
spec:
containers:
image: DOCKER_IMAGE
imagePullPolicy: IfNotPresent
name: SERVICE_NAME
ports:
- containerPort: 8080
name: http
protocol: TCP
initContainers:
- command:
- npm
- run
- deploy
image: DOCKER_IMAGE
imagePullPolicy: IfNotPresent
name: database-migrate-deploy
(这是一个实时服务,我只是复制并删除了所有不必要的东西)
我希望这对某人有用