类型安全访问,
搭配
Prisma 与 PlanetScale

使用 Prisma(一个面向 Node.js 和 TypeScript 的下一代 ORM)从 PlanetScale 查询数据。

tech

Prisma 是什么?

Prisma 提供数据库工具,是构建具有出色开发体验的高性能 Next.js 应用程序的完美伴侣。

ORM

Prisma ORM 是最流行的 TypeScript ORM。它带有人类可读的 Schema、自动化迁移以及直观、完全类型安全的查询 API。

了解更多关于 Prisma ORM

Postgres

Prisma Postgres 是第一个没有冷启动的无服务器数据库。它基于 unikernels,在裸机上运行,并内置缓存、高性能查询和无缝扩展——所有这些都带来出色的开发体验。

了解更多关于 Prisma Postgres

Prisma 和 PlanetScale 如何协同工作

PlanetScale 是一个兼容 MySQL 的无服务器数据库,由 Vitess 提供支持,Vitess 是一个用于 MySQL 水平扩展的数据库集群系统。PlanetScale 将无服务器的诸多优势带入数据库领域,具有无限扩展、按用量计费、零停机 Schema 迁移以及慷慨的免费层。

Prisma 是一个开源 ORM,与 PlanetScale 无缝集成并支持完整的开发周期。Prisma 帮助您使用 Prisma Schema 声明性地定义数据库 Schema,并使用 Prisma Client 从 PlanetScale 获取具有完全类型安全的数据。两者结合使用,您将获得关系数据库的所有既有优势,此外还有现代的开发体验、类型安全查询、零运维和无限扩展。

Prisma Schema

Prisma Schema 使用 Prisma 的建模语言来定义您的数据库 Schema。它使数据建模变得简单直观,尤其是在建模关系方面。

Prisma Schema 的语法深受 GraphQL SDL 的启发。如果您已经熟悉 SDL,那么学习它来建模数据库表将轻而易举。

1// Define the `User` table in the database
2model User {
3 id String @id @default(cuid())
4 email String @unique
5 password String
6 name String?
7 posts Post[]
8}
9
10// Define the `Post` table in the database
11model Post {
12 id String @id @default(cuid())
13 title String
14 content String?
15 authorId String
16 author User @relation(fields: [authorId], references: [id])
17}

“PlanetScale 与 Prisma 是无与伦比的组合,带来了卓越的开发者体验和经过验证的可扩展性。”

Sam Lambert
Sam Lambert -
首席执行官

为何选择 Prisma 和 PlanetScale?

非阻塞 Schema 变更

PlanetScale 提供 Schema 变更工作流,让您无需锁定或导致生产数据库停机即可更新和演进数据库 Schema。

直观的数据建模

Prisma 的建模语言是声明性的,让您直观地描述数据库 Schema。

类型安全的数据库客户端

Prisma Client 确保完全类型安全的数据库查询,并提供自动补全等优势——即使在 JavaScript 中也是如此。

为无服务器而生

避免管理服务器的陷阱,将您的 Prisma 和 PlanetScale 项目部署到无服务器运行时,实现零运维和无限可扩展性。

轻松的数据库迁移

将您的 Prisma Schema 映射到数据库,这样您就不需要编写 SQL 来管理数据库 Schema。

过滤、分页与排序

Prisma Client 通过为常见的数据库功能提供便捷的 API 来减少样板代码。

course

Prisma 与 PlanetScale 最佳实践

在此视频中,Daniel 将引导您了解使用 Prisma 与 PlanetScale 时所需的一切。了解更多关于引用完整性以及如何在没有外键约束的情况下操作,使用 prisma db push 命令进行 Prisma 和 PlanetScale 的迁移工作流,以及在关系标量(外键字段)上定义索引以获得最佳性能。

talk

使用 PlanetScale 和 Prisma 实现数据库即代码

在 Next.js Conf 的本次演讲中,来自 PlanetScale 团队的 Taylor Barnett 深入探讨了“数据库即代码”的理念,以及如何使用 PlanetScale 与 Prisma 以声明性方式定义模型,并利用分支在无服务器堆栈的隔离开发环境中试验数据库。

我们的 Prisma 与 PlanetScale 资源

将 Prisma 与 PlanetScale 配合使用

本文档讨论了使用 Prisma 和 PlanetScale 背后的概念,解释了 PlanetScale 与其他数据库提供商之间的异同,并引导您完成配置应用程序以与 PlanetScale 集成的过程。

为无服务器扩展数据库:与 Sugu Sougoumarane 对谈

如今,Vitess 是 Slack、Roblox、Square、Etsy、GitHub 等众多公司扩展规模的默认数据库。但它是如何发展到这一步的呢?从其在 YouTube 的创建,到为无服务器数据库平台 PlanetScale 提供支持的数据库,Taylor 和 Sugu 将深入探讨 Vitess 的创建过程、为何选择 MySQL、Vitess 为何如此强大,以及它如何与构建无服务器应用程序的开发者完美契合。

© . All rights reserved.