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

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

http://www.lryc.cn/news/2403018.html

相关文章:

  • GIC v3 v4 虚拟化架构
  • 2025远离Deno和Fresh
  • 相机camera开发之差异对比核查一:测试机和对比机的硬件配置差异对比
  • Flask+LayUI开发手记(七):头像的上传及突破static目录限制
  • uv管理spaCy语言模型
  • MiniExcel模板填充Excel导出
  • NoSQL之redis哨兵
  • MCP协议重构AI Agent生态:万能插槽如何终结工具孤岛?
  • 阿里云事件总线 EventBridge 正式商业化,构建智能化时代的企业级云上事件枢纽
  • CentOS8.3+Kubernetes1.32.5+Docker28.2.2高可用集群二进制部署
  • 学习日记-day23-6.6
  • Pytorch安装后 如何快速查看经典的网络模型.py文件(例如Alexnet,VGG)(已解决)
  • 《ERP原理与应用教程》第3版习题和答案
  • JavaScript中的正则表达式:文本处理的瑞士军刀
  • vue对axios的封装和使用
  • 软考 系统架构设计师系列知识点之杂项集萃(82)
  • DrissionPage调试工具:网页自动化与数据采集的革新利器
  • 有人-无人(人机)交互记忆、共享心智模型与AI准确率的边际提升
  • 如何使用k8s安装redis呢
  • AI对测试行业的应用
  • 【OpenGL学习】(五)自定义着色器类
  • 408第一季 - 数据结构 - 栈与队列的应用
  • 超声波清洗设备的清洗效果如何?
  • k8s部署dify
  • “草台班子”的成长路径分析
  • RAG技术解析:实现高精度大语言模型知识增强
  • 软件测评服务如何依据标准确保品质?涵盖哪些常见内容?
  • 大数据学习(131)-Hive数据分析函数总结
  • SCAU数值计算OJ
  • c++ 基于openssl MD5用法