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

07 - Prisma 入门配置指南

Prisma 入门配置指南

本文档记录 Node.js 项目中安装、初始化、首次迁移 Prisma,以及生成 Client 与配置数据库连接的完整步骤。


Step 1:安装 Prisma

在项目根目录终端执行:

cdD:\yunyanshijie\skill_test\nodejsnpminstall@prisma/clientnpminstall-Dprisma

验收:package.json里出现prisma@prisma/client

@prisma/client→ dependencies

@prisma/client运行时依赖

  • 应用启动后,业务代码会import { PrismaClient } from '@prisma/client'并实际调用
  • 生产环境(npm install --production或 Docker 构建)需要安装它,否则服务跑不起来
  • 它包含连接数据库、执行查询等逻辑,属于应用本体的一部分

因此放在dependencies

prisma→ devDependencies

prisma开发/构建时工具(CLI):

  • 主要用途:prisma generateprisma migrateprisma db pushprisma studio
  • 这些一般在本地开发、CI 构建、部署前执行,不是 Node 服务处理请求时每次都要跑的
  • 生产运行时通常不需要再执行 migrate(多在部署流程里单独跑),也不需要 Studio

因此放在devDependencies


Step 2:初始化 Prisma(生成 prisma 文件夹)

npx prisma init

会发生什么:

  • 新建prisma/schema.prisma
  • 新建.env(里面有一条DATABASE_URL=...

Step 3:配置.env.example.gitignore

.env.example(新建,可提交 Git)

# 复制为 .env 后填写真实密码 DATABASE_URL="postgresql://postgres:YOUR_PASSWORD@localhost:5432/nodejs_study?schema=public"

.gitignore(新建或追加)

node_modules/ .env

要点:

文件说明
.env本机真密码,永不提交
.env.example模板,可以提交,给未来的自己或队友看要配什么

Step 4:在 package.json 里加便捷脚本(可选但建议)

"scripts"里追加以下两行:

{"scripts":{"db:migrate":"prisma migrate dev","db:studio":"prisma studio"}}

以后就可以npm run db:migrate,不用记长命令。

db:migrateprisma migrate dev

作用:根据prisma/schema.prisma同步数据库结构(开发环境用)。

Prisma 会大致做这些事:

  1. 对比 schema 和当前数据库,生成迁移文件(在prisma/migrations/
  2. 把变更应用到 PostgreSQL(建表、改字段等)
  3. 重新生成 Prisma Client(src/generated/prisma

例如你现在的 Todo 模型,跑完后会在nodejs_study库里创建Todo表。

典型使用时机:新建/修改 model 后,让数据库和代码定义一致。

db:studioprisma studio

作用:打开 Prisma 自带的可视化数据库管理界面(浏览器里操作数据)。

会启动本地 Web 服务(一般是http://localhost:5555),在页面上可以:

  • 查看表和数据
  • 增删改记录(比如手动加一条 Todo)
  • 不用写 SQL 或装 pgAdmin

典型使用时机:调试时看数据、手动改几条记录。


Step 5:第一次 migration(在 PostgreSQL 里真正建表)

npmrun db:migrate

提示 migration 名字时输入:init

验收(3 件事):

  1. 终端显示成功(类似database is in sync
  2. 项目里出现prisma/migrations/文件夹
  3. 打开 pgAdmin →nodejs_study→ Schemas → public → Tables,能看到Todo

Step 6:(可选)用 Prisma Studio 看表

npmrun db:studio

浏览器里能看到空的 Todo 表,说明连接正常。


Step 7:生成 Prisma Client

说明:migrate只建表;要在 Node 里查表,还需要生成客户端代码。若 Step 5 已成功执行,migrate dev通常已自动生成;也可单独执行以下命令。

npx prisma generate

验收:出现src/generated/prisma/文件夹。


Step 8:新建src/lib/prisma.ts

这个文件的作用:整个项目共用一个数据库连接(类似 Express 的 app 单例)。

新建文件并写入:

import"dotenv/config";import{PrismaPg}from"@prisma/adapter-pg";import{PrismaClient}from"../generated/prisma/client.ts";constadapter=newPrismaPg({connectionString:process.env.DATABASE_URL,});constprisma=newPrismaClient({adapter});exportdefaultprisma;

说明:Prisma 7 的 import 路径是../generated/prisma/client.ts,不是@prisma/client。这是你schema.prismaoutput = "../src/generated/prisma"决定的。


附录:HTTP 状态码

状态码含义典型场景
200成功,有返回 bodyGET、PUT
201创建成功POST
204成功,没有 bodyDELETE 成功
http://www.jsqmd.com/news/1071709/

相关文章:

  • 爬虫实战教程:如何使用Python抓取TikTok的评论数据?
  • 从木匠到英伟达供应商:鹤壁企业42年三次产业逃亡,借AI算力实现逆袭
  • DMA技术如何优化嵌入式系统性能:ADC到USART数据传输实战
  • 为什么选 bf16 而不是 fp16,AMD Instinct 架构下的精度与性能权衡
  • OpenAI Whisper内网无网络环境运行 | 开源Whisper本地化部署运行 | 语音识别ASR本地化
  • Meltwater报告揭示的趋势:合规公关正在全球兴起
  • ssl证书用完了怎么办?推荐看看这个
  • 单细胞NMF非负矩阵分解降维及亚群分析应用
  • SAM7X以太网MAC高级功能:哈希过滤与VLAN标签处理实战
  • “无主权路由”的奇袭:Sakana AI 如何在地缘政治夹缝中完成技术突围?
  • 基于ATAK51003-V1的汽车无钥匙进入系统开发实战指南
  • AT24MAC芯片实战:硬件唯一ID在嵌入式设备身份认证与量产中的应用
  • 社区直播选软件,老板别只会看“花架子”,这三点才是真正的“铁门槛”
  • Atmel ATA820x UHF接收器:ASK/FSK双模、低功耗与高灵敏度设计实战
  • MPLAB Harmony加密库实战:从ECC/RSA到3DES/SHA的嵌入式安全开发指南
  • Article A (EN)
  • 你的agent简历上缺的不是技术栈,缺的是Know-how
  • 齐纳二极管芯片CD52xx系列选型与应用实战指南
  • 2026年首脑培训学校口碑怎么样
  • 2026年同城外卖优惠新趋势:供应商如何脱颖而出
  • AT42QT2160电容触摸芯片I2C配置实战:从通信基础到抗干扰调优
  • KeePassXC:本地优先的开源密码管理器
  • 嵌入式系统硬件安全实践:TPM开发套件I2C/SPI集成与TSS软件栈应用
  • 工业级电容触摸设计:AT42QT2640 FMEA自检与抗干扰实战
  • 一场秋衣上新,AI三天出图抵过拍摄团队一个月
  • ATmega M1高级功能实战:DIDR抗干扰、DAC输出与Bootloader设计
  • AVR异步定时器中断丢失:BOD禁用下的低功耗陷阱与解决方案
  • 为什么说大多数私域都是伪命题?聊聊CRMEB系统下的“信任阶梯”模型
  • ATmega164P/324P/644P ADC配置与低功耗设计实战指南
  • 分布式数据库原理及技术