07 - Prisma 入门配置指南

📅 2026/6/24 8:50:11
07 - Prisma 入门配置指南
Prisma 入门配置指南本文档记录 Node.js 项目中安装、初始化、首次迁移 Prisma以及生成 Client 与配置数据库连接的完整步骤。Step 1安装 Prisma在项目根目录终端执行cdD:\yunyanshijie\skill_test\nodejsnpminstallprisma/clientnpminstall-Dprisma验收package.json里出现prisma和prisma/client。prisma/client→ dependenciesprisma/client是运行时依赖应用启动后业务代码会import { PrismaClient } from prisma/client并实际调用生产环境npm install --production或 Docker 构建需要安装它否则服务跑不起来它包含连接数据库、执行查询等逻辑属于应用本体的一部分因此放在dependencies。prisma→ devDependenciesprisma是开发/构建时工具CLI主要用途prisma generate、prisma migrate、prisma db push、prisma 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_URLpostgresql://postgres:YOUR_PASSWORDlocalhost:5432/nodejs_study?schemapublic.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:migrate→prisma migrate dev作用根据prisma/schema.prisma同步数据库结构开发环境用。Prisma 会大致做这些事对比 schema 和当前数据库生成迁移文件在prisma/migrations/把变更应用到 PostgreSQL建表、改字段等重新生成 Prisma Clientsrc/generated/prisma例如你现在的 Todo 模型跑完后会在nodejs_study库里创建Todo表。典型使用时机新建/修改 model 后让数据库和代码定义一致。db:studio→prisma studio作用打开 Prisma 自带的可视化数据库管理界面浏览器里操作数据。会启动本地 Web 服务一般是http://localhost:5555在页面上可以查看表和数据增删改记录比如手动加一条 Todo不用写 SQL 或装 pgAdmin典型使用时机调试时看数据、手动改几条记录。Step 5第一次 migration在 PostgreSQL 里真正建表npmrun db:migrate提示 migration 名字时输入init验收3 件事终端显示成功类似database is in sync项目里出现prisma/migrations/文件夹打开 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 单例。新建文件并写入importdotenv/config;import{PrismaPg}fromprisma/adapter-pg;import{PrismaClient}from../generated/prisma/client.ts;constadapternewPrismaPg({connectionString:process.env.DATABASE_URL,});constprismanewPrismaClient({adapter});exportdefaultprisma;说明Prisma 7 的 import 路径是../generated/prisma/client.ts不是prisma/client。这是你schema.prisma里output ../src/generated/prisma决定的。附录HTTP 状态码状态码含义典型场景200成功有返回 bodyGET、PUT201创建成功POST204成功没有 bodyDELETE 成功