快速入门
在本快速入门指南中,您将学习如何使用 Prisma ORM 和一个Prisma Postgres 数据库在一个简单的TypeScript 项目中从头开始。它涵盖以下工作流程
- 创建一个 Prisma Postgres 数据库
- 模式迁移和查询(通过 Prisma ORM)
- 连接池和缓存(通过 Prisma Accelerate)
- 实时数据库更改事件(通过 Prisma Pulse)
先决条件
要成功完成本教程,您需要
- 一个(PDP) 帐户
- Node.js v16.13.0 或更高版本(了解更多关于 系统要求)
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 密钥
通过.env
文件中的环境变量配置到数据库的连接和 Pulse API 密钥。
首先,将现有的.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',
modelName: 'User'
}
8. 下一步
在本快速入门指南中,您学习了如何在简单的 TypeScript 项目中使用 Prisma ORM。您可以随意自行进一步探索 Prisma Client API,例如,在findMany
查询中包含过滤、排序和分页选项,或者探索更多操作,例如update
和delete
查询。
在 Prisma Studio 中探索数据
Prisma ORM 带有一个内置的 GUI 来查看和编辑数据库中的数据。您可以使用以下命令打开它
npx prisma studio
探索可运行的 Prisma ORM 示例
查看 GitHub 上的 prisma-examples
存储库,了解如何将 Prisma ORM 与您喜欢的库一起使用。该存储库包含使用 Express、NestJS、GraphQL 以及使用 Next.js 和 Vue.js 的完整堆栈示例,以及更多内容。
使用 Prisma Pulse 构建实时应用程序
Prisma Pulse 使您能够创建能够立即响应数据库更改的应用程序,使您能够轻松构建类型安全的实时功能和应用程序。
演示 | 描述 |
---|---|
入门 | 一个 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 加速 是一款连接池和全局数据库缓存,可以显著提高您的数据库查询速度。查看 速度测试 或尝试使用您最喜欢的框架来使用加速。
演示 | 描述 |
---|---|
nextjs-starter | 一个使用 Prisma 加速的缓存和连接池的 Next.js 项目 |
svelte-starter | 一个使用 Prisma 加速的缓存和连接池的 SvelteKit 项目 |
solidstart-starter | 一个使用 Prisma 加速的缓存和连接池的 Solidstart 项目 |
remix-starter | 一个使用 Prisma 加速的缓存和连接池的 Remix 项目 |
nuxt-starter | 一个使用 Prisma 加速的缓存和连接池的 Nuxt.js 项目 |
astro-starter | 一个使用 Prisma 加速的缓存和连接池的 Astro 项目 |
使用 Prisma ORM 构建应用程序
Prisma 博客提供了关于 Prisma ORM 的全面教程,查看我们最新的教程