类型安全的访问和
无限扩展能力,借助
Prisma & PlanetScale

使用Prisma从PlanetScale查询数据——适用于Node.js和TypeScript的下一代ORM。

tech

什么是Prisma?

Prisma让数据操作变得简单!它提供类型安全的Node.js和TypeScript ORM、全局数据库缓存、连接池以及实时数据库事件。

查询
// Creating a new record
await prisma.user.create({
firstName: “Alice”,
email: “alice@prisma.io”
})
id firstName email
1 Bobby bobby@tables.io
2 Nilufar nilu@email.com
3 Jürgen jums@dums.edu
4 Alice alice@prisma.io

Prisma和PlanetScale如何协同工作

PlanetScale 是一个与MySQL兼容的无服务器数据库,由 Vitess 提供支持,Vitess是一个用于MySQL水平扩展的数据库集群系统。PlanetScale将许多无服务器的优势带入数据库领域,提供无限扩展、基于消费的定价、零停机时间模式迁移以及慷慨的免费层级。

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

Prisma模式

根据 Prisma模式文档,Prisma模式使用Prisma的模型语言定义您的数据库模式。它使数据建模变得简单直观,尤其是在建模关系时。

Prisma模式的语法深受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 LambertSam Lambert -
首席执行官PlanetScale首席执行官

为什么选择Prisma和PlanetScale?

无阻塞模式变更

PlanetScale提供模式变更工作流,允许您更新和演进数据库模式,而不会锁定生产数据库或导致停机。

直观的数据建模

Prisma的模型语言是声明性的,让您可以直观地描述数据库模式。

类型安全的数据库客户端

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

专为无服务器构建

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

轻松的数据库迁移

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

过滤、分页和排序

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为何如此强大,以及它为何非常适合构建无服务器应用程序的开发者。