跳至主要内容

快速入门

在本快速入门指南中,您将学习如何在纯 TypeScript 项目中使用 Prisma ORM 和 Prisma Postgres 数据库从头开始。它涵盖以下工作流程

先决条件

要成功完成本教程,您需要

  • 一个(PDP) 帐户
  • Node.js 安装在您的机器上(有关官方支持的版本,请参阅 系统要求

1. 在平台控制台中设置 Prisma Postgres 数据库

请按照以下步骤创建您的 Prisma Postgres 数据库

  1. 登录到.
  2. 在您选择的 工作区 中,点击“新建项目”按钮。
  3. 在“名称”字段中键入项目名称,例如 hello-ppg
  4. 在“Prisma Postgres”部分,点击“开始使用”按钮。
  5. 在“区域”下拉菜单中,选择离您当前位置最近的区域,例如 美国东部(北弗吉尼亚州)
  6. 点击“创建项目”按钮。

此时,您将被重定向到“数据库”页面,您需要等待几秒钟,在此期间数据库的状态将从 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_URLPULSE_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 模式 中定义的 UserPost 模型映射到您的数据库。您还可以查看已执行并创建表的 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 查询中包含过滤、排序和分页选项,或探索更多操作,例如 updatedelete 查询。

在 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 提问。