タイプセーフなアクセスと
無限のスケーラビリティを
Prisma & PlanetScale

PlanetScaleのデータをPrismaでクエリ – 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 は、Vitess を搭載したMySQL互換のサーバーレスデータベースです。VitessはMySQLを水平方向にスケールするためのデータベースクラスタリングシステムです。PlanetScaleは、無制限のスケーリング、従量課金制、無停止スキーマ移行、そして寛大な無料枠といった、サーバーレスの利点の多くをデータベースの世界にもたらします。

PrismaはオープンソースのORM であり、PlanetScaleとシームレスに統合し、開発サイクル全体をサポートします。Prismaは、Prismaスキーマを使用してデータベーススキーマを宣言的に定義し、Prisma Clientを使用してPlanetScaleから完全なタイプ安全性でデータを取得するのに役立ちます。両方を一緒に使用することで、確立されたリレーショナルデータベースの利点に加えて、モダンな開発者体験、タイプセーフなクエリ、ゼロ運用、そして無限のスケーラビリティが得られます。

Prismaスキーマ

The 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 -
CEO of 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によるDatabase as code

Next.js Confでのこの講演で、PlanetScaleチームのTaylor Barnettが、データベースをコードとして扱うというアイデア、PlanetScaleとPrismaを使用してモデルを宣言的な性質で定義する方法、およびサーバーレススタックの隔離された開発環境でデータベースを実験するためにブランチングを使用する方法について掘り下げます。

Prisma & PlanetScaleのリソース

PlanetScaleでのPrismaの使用

このドキュメントでは、PrismaとPlanetScaleの使用に関する概念、PlanetScaleと他のデータベースプロバイダーとの間の共通点と相違点について説明し、PlanetScaleと統合するようにアプリケーションを構成するプロセスを説明します。

サーバーレスのためのデータベースのスケーリング:Sugu Sougoumaraneとのチャット

今日、VitessはSlack、Roblox、Square、Etsy、GitHubなどの多くの企業でスケールするためのデフォルトのデータベースです。しかし、どのようにしてここにたどり着いたのでしょうか?YouTubeでの作成から、サーバーレスデータベースプラットフォームであるPlanetScaleを支えるデータベースまで、TaylorとSuguはVitessの作成、MySQLの理由、Vitessを非常に強力にするもの、そしてサーバーレスアプリケーションを構築する開発者に最適なさまざまな方法について掘り下げます。