当前位置: 首页 > news >正文

Next.js+prisma开发一

1.初始化Next.js项目

#按版本安装
npx create-next-app@13.4.5
如果最新版本
执行:npx create-next-app@latest

2. 安装Prima和客户端

npm install prisma --save-dev
npm install @prisma/client

3.初始化Prisma,以SQLit举例

# 初始化 Prisma 并配置 SQLite
npx prisma init --datasource-provider sqlite

执行后生成

数据模型定义文件:prisma/schema.prisma

自动配置:.env( DATABASE_URL="file:./prisma/dev.db")

4. 定义数据模型,编辑prisma/schema.prisma:

model Goods {id          Int      @id @default(autoincrement())name        String   @map("goods_name")price       Float    @default(0)stock       Int      @default(0) @map("goods_num")createdAt   DateTime @default(now()) @map("created_at")updatedAt   DateTime @updatedAt @map("updated_at")@@map("goods") // 数据库表名
}

5. 同步数据库,生成迁移文件

#此命令中init可以随意名命
npx prisma migrate dev --name init

此时会生成: prisma/dev.db(SQLite数据库文件)和 src/generated/prisma

6.创建Prisma单例

新建src/lib/prisma.ts

import { PrismaClient } from '@prisma/client'const prismaClientSingleton = () => {return new PrismaClient()
}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

7. 当你需要修改schema.prisma时,比如新增字段时,

7.1先确保字段允许null或设置默认值

model Users {updatedAt DateTime? @map("updated_at")  # 允许 NULL# 或status    Int      @default(1)         # 设置默认值
}

7.2生成迁移文件

npx prisma migrate dev --name your_migration(your_migration改成你名命的)

7.3 执行应用迁移(存疑)

npx prisma migrate

8. 备份,会生成一份备份数据库

cp ./prisma/dev.db ./prisma/dev.db.bak

9. 打开数据库可视化面板

npx prisma studio

10.监听模型变化自动生成客户端

npx prisma generate --watch

11.重置数据库

npx prisma migrate reset

相关文章:

  • HTV 3.3 | 秒播无卡顿 直播源每天维护更新
  • 【STL】函数对象+常用算法
  • 【Modbus 通讯协议从入门到放弃二:实战】
  • Playwright 测试框架 - Java
  • 如何给windos11 扩大C盘容量
  • Python 训练营打卡 Day 44
  • 多进程与多线程:核心差异与实战选择
  • Linux 进程管理学习指南:架构、计划与关键问题全解
  • 2025年- H70-Lc178--17.电话号码的组合(回溯,组合)--Java版
  • 【cmder】--- Windows 下 cmder 经典常用快捷键 显著提高效率
  • el-draw的文件列表和清单内容布局实现
  • 杰理可视化SDK--系统死机异常调试
  • Flask-SQLAlchemy使用小结
  • 力扣LeetBook数组和字符串--二维数组
  • 2025爱分析·银行数字化应用实践报告|爱分析报告
  • 深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
  • 【C】-递归
  • Redis持久化模式RDB与AOF
  • Word文档重新打开后标题自动缩进的解决方法
  • 数据分析Agent构建
  • cpa做电影网站侵权吗/seo整站优化推广
  • 宿州物流网站建设/如何开发一款app软件
  • 网站代建设费用/品牌运营推广方案
  • oa系统网页版/seo排名赚官网
  • 电子商务网站建设资讯/百度上做推广怎么收费
  • 安徽网站建/泰州百度seo公司