快速入门
在本快速入门指南中,您将学习如何在纯 TypeScript 项目中使用 Prisma ORM 和 Prisma Postgres 数据库从头开始。它涵盖以下工作流程
- 创建 Prisma Postgres 数据库
- 模式迁移和查询(通过 Prisma ORM)
- 连接池和缓存(通过 Prisma Accelerate)
- 实时数据库更改事件(通过 Prisma Pulse)
先决条件
要成功完成本教程,您需要
1. 在平台控制台中设置 Prisma Postgres 数据库
请按照以下步骤创建您的 Prisma Postgres 数据库
- 登录到.
- 在您选择的 工作区 中,点击“新建项目”按钮。
- 在“名称”字段中键入项目名称,例如 hello-ppg。
- 在“Prisma Postgres”部分,点击“开始使用”按钮。
- 在“区域”下拉菜单中,选择离您当前位置最近的区域,例如 美国东部(北弗吉尼亚州)。
- 点击“创建项目”按钮。
此时,您将被重定向到“数据库”页面,您需要等待几秒钟,在此期间数据库的状态将从 PROVISIONING
更改为 ACTIVATING
,然后更改为 CONNECTED
。
绿色的 CONNECTED
标签出现后,您的数据库即可使用!
2. 下载示例并安装依赖项
复制控制台中显示的 try-prisma
命令,将其粘贴到您的终端中并执行。
作为参考,命令如下所示
npx try-prisma@latest \
--template databases/prisma-postgres \
--name hello-prisma \
--install npm
try-prisma
命令终止后,导航到项目目录
cd hello-prisma
3. 设置数据库连接和 Pulse API 密钥
数据库连接和 Pulse API 密钥是通过 .env
文件中的环境变量进行配置的。
首先,将现有的 .env.example
文件重命名为 .env
。
mv .env.example .env
然后,在“设置数据库访问”部分查找您的数据库凭据,复制 DATABASE_URL
和 PULSE_API_KEY
环境变量,并将它们粘贴到 .env
文件中。
作为参考,该文件现在应类似于以下内容
DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=ey...."
PULSE_API_KEY="ey...."
4. 创建数据库表(使用模式迁移)
接下来,您需要在数据库中创建表。您可以使用 Prisma CLI 的以下命令创建并执行模式迁移
npx prisma migrate dev --name init
这会将您在 Prisma 模式 中定义的 User
和 Post
模型映射到您的数据库。您还可以查看已执行并创建表的 SQL 迁移,该迁移位于新创建的 prisma/migrations
目录中。
5. 使用 Prisma ORM 执行查询
src/queries.ts
脚本包含一些 CRUD 查询,这些查询将在您的数据库中写入和读取数据。您可以通过在终端中运行以下命令来执行它
npm run queries
脚本完成后,您可以检查终端中的日志或使用 Prisma Studio 浏览数据库中已创建的记录
npx prisma studio
6. 探索 Prisma Accelerate 的缓存
src/caching.ts
脚本包含一个示例查询,该查询使用 Stale-While-Revalidate (SWR) 和 Time-To-Live (TTL) 来使用 Prisma Accelerate 缓存数据库查询。您可以按如下方式执行它
npm run caching
请注意执行查询花费的时间,例如
The query took 2009.2467149999998ms.
现在,再次运行脚本
npm run caching
您会注意到,这次查询花费的时间会短很多,例如
The query took 300.5655280000001ms.
7. 观察数据库中的实时事件
src/realtime.ts
脚本包含一个接收数据库实时更改 事件 的演示。您可以按如下方式启动脚本
npm run realtime
该脚本现在创建了一个 流,该流将接收数据库事件,并在 User
表上发生写入操作(即 创建、更新或 删除)时将其打印到控制台。
要测试该流,您可以打开 Prisma Studio
npx prisma studio
…并对 User
表进行更改,例如创建新记录。保存更改后,您应该在终端中看到类似于以下内容的输出
Received an event: {
action: 'create',
created: { id: 3, email: '[email protected]', name: 'Nikolas' },
id: '01JAFNSZHQRDTW773BCAA9G7FJ'
}
8. 下一步
在本快速入门指南中,您学习了如何在纯 TypeScript 项目中使用 Prisma ORM 入门。您可以自行进一步探索 Prisma Client API,例如,在 findMany
查询中包含过滤、排序和分页选项,或探索更多操作,例如 update
和 delete
查询。
在 Prisma Studio 中探索数据
Prisma ORM 带有一个内置 GUI,用于查看和编辑数据库中的数据。您可以使用以下命令打开它
npx prisma studio
使用 Prisma Postgres,您还可以直接在中使用 Prisma Studio,方法是在您的项目中选择“Studio”选项卡。
探索可立即运行的 Prisma ORM 示例
查看 GitHub 上的 prisma-examples
存储库,了解如何将 Prisma ORM 与您喜欢的库一起使用。该存储库包含使用 Express、NestJS、GraphQL 以及使用 Next.js 和 Vue.js 的完整堆栈示例,以及更多内容。
使用 Prisma Pulse 构建实时应用程序
Prisma Pulse 使您能够创建能够立即对数据库中的更改做出反应的应用程序,使您能够轻松构建类型安全的实时功能和应用程序
演示 | 描述 |
---|---|
starter | 一个 Prisma Pulse 入门应用程序 |
email-with-resend | 一个使用 Prisma Pulse 和 Resend 向新用户发送电子邮件的示例应用程序 |
fullstack-leaderboard | 一个实时排行榜(使用 Next.js 构建) |
fullstack-simple-chat | 一个简单的聊天应用(使用 Next.js 和 Express 构建) |
product-search-with-typesense | 一个将数据同步到 Typesense 的 cron 作业(使用 Hono.js 构建) |
data-sync-with-bigquery | 一个自动将数据同步到 Google BigQuery 的脚本 |
使用 Prisma Accelerate 加速你的数据库查询
Prisma Accelerate 是一款连接池和全局数据库缓存,可以显著加快你的数据库查询速度。查看 速度测试 或使用你喜欢的框架尝试 Accelerate。
演示 | 描述 |
---|---|
nextjs-starter | 一个使用 Prisma Accelerate 的缓存和连接池的 Next.js 项目 |
svelte-starter | 一个使用 Prisma Accelerate 的缓存和连接池的 SvelteKit 项目 |
solidstart-starter | 一个使用 Prisma Accelerate 的缓存和连接池的 Solidstart 项目 |
remix-starter | 一个使用 Prisma Accelerate 的缓存和连接池的 Remix 项目 |
nuxt-starter | 一个使用 Prisma Accelerate 的缓存和连接池的 Nuxt.js 项目 |
astro-starter | 一个使用 Prisma Accelerate 的缓存和连接池的 Astro 项目 |
使用 Prisma ORM 构建应用
Prisma 博客提供了关于 Prisma ORM 的全面教程,查看我们最新的教程。
加入 Prisma 社区 💚
Prisma 有一个庞大的 开发者社区。加入我们的 Discord 或使用 GitHub Discussions 提问。