文章
prisma基本使用
初始化
npx prisma init修改配置文件
/prisma/shcema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}添加.env环境变量
DATABASE_URL="mysql://backend_user:BackendUser@localhost:3306/backend_db"添加测试模型
/prisma/shcema.prisma 添加如下模型信息
model Test {
id Int @id @default(autoincrement())
name String @db.VarChar(255)
desc String?
number Int
isPublished Boolean
}将模型推送到mysql
npx prisma db pushprisma studio
npx prisma studio安装prisma客户端
npm install @prisma/client使用prisma客户端
/src/lib/client.ts
import { PrismaClient } from '@prisma/client'
const globalForPrisma = globalThis as unknown as { prisma: PrismaClient }
export const prisma = globalForPrisma.prisma || new PrismaClient()
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma新版本安装
npm install prisma --save-dev
npx prisma init --datasource-provider sqlite --output ../generated/prisma
npm install dotenv
prisma.config.ts add import "dotenv/config";
npx prisma migrate dev
npm install @prisma/clientPg数据库版
1、安装依赖
cd hello-world
npm install @prisma/client @prisma/adapter-pg pg dotenv tsx
npm install -D prisma @types/pg2、初始化
npx prisma init --db3、编辑配置文件prisma.config.ts
import 'dotenv/config'
import { defineConfig, env } from 'prisma/config'
export default defineConfig({
schema: 'prisma/schema.prisma',
migrations: {
path: 'prisma/migrations',
seed: 'tsx ./prisma/seed.ts',
},
datasource: {
url: env('DATABASE_URL'),
},
})4、添加ORM
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client"
output = "./generated"
}
datasource db {
provider = "postgresql"
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId Int
}5、迁移表
npx prisma migrate dev --name init6、创建prisma客户端
import { PrismaPg } from '@prisma/adapter-pg'
import { PrismaClient } from '../prisma/generated/client'
const prismaClientSingleton = () => {
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL! })
return new PrismaClient({ adapter })
}
type PrismaClientSingleton = ReturnType<typeof prismaClientSingleton>
const globalForPrisma = globalThis as unknown as {
prisma: PrismaClientSingleton | undefined
}
export const prisma = globalForPrisma.prisma ?? prismaClientSingleton()
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma