Prisma(Node.js用タイプセーフなTypeScript ORM)を使用して、MySQL、PostgreSQL、SQL Serverデータベースからデータをクエリ。
Prismaは、優れた開発者エクスペリエンスで高性能なNext.jsアプリを構築するための完璧なパートナーとなるデータベースツールを提供します。
Prisma ORMは最も人気のあるTypeScript ORMです。人間が読めるスキーマ、自動マイグレーション、直感的で完全な型安全なクエリAPIが付属しています。
Prisma ORMについてもっと知るPrisma Postgresは、コールドスタートがない初のサーバーレスデータベースです。ユニカーネルに基づいてベアメタル上で動作し、組み込みのキャッシュ、高性能なクエリ、シームレスなスケーリングを提供し、すべて優れた開発者エクスペリエンスを備えています。
Prisma Postgresについてもっと知るTypeScriptはJavaScript上に構築された静的型付け言語です。JavaScriptのすべての機能に加え、コードを型付けして検証する機能を提供し、コードを実行する前にエラーを捕捉して修正を提供することで時間を節約します。すべての有効なJavaScriptコードはTypeScriptコードでもあるため、TypeScriptは簡単に導入できます。
PrismaはNode.jsおよびTypeScript用のORMであり、データベーススキーマから型を自動生成することで、ゼロコストで型安全性のメリットを提供します。信頼性の高いデータ集約型アプリケーションの構築に最適です。Prismaは、リレーショナルデータベースにデータを保存する際に、より自信と生産性をもたらします。任意のNode.jsサーバーフレームワークと組み合わせて、データベースと対話できます。
Prismaスキーマは、Prismaのモデリング言語を使用してデータベーススキーマを定義し、対応するTypeScript型を生成します。これにより、データモデリング、特にリレーションのモデリングが簡単で直感的になります。
1// Define the `User` table in the database2model User {3 id String @id @default(cuid())4 email String @unique5 password String6 name String?7 posts Post[]8}910// Define the `Post` table in the database11model Post {12 id String @id @default(cuid())13 createdAt DateTime @default(now())14 title String15 content String?16 authorId String17 author User @relation(fields: [authorId], references: [id])18}
Prismaスキーマから生成された型は、すべてのデータベースクエリが型安全であることを保証します。Prisma Clientは素晴らしいオートコンプリート体験を提供するため、迅速に作業を進め、無効なクエリを作成しないことを確実にします。
1type User = {2 id: string3 email: string4 password: string5 name: string | null6}78export type Post = {9 id: string10 createdAt: Date11 title: string12 content: string | null13 authorId: string14}
スキーマを一度定義するだけで、PrismaがTypeScript型を生成します。データベーススキーマの型とアプリケーションコードの型を手動で同期する必要はありません。
以下のコードは、部分的なクエリやリレーションを含むすべてのクエリにおいて、Prismaを使用したデータベースクエリが完全に型安全であることを示しています。
Prisma Clientでのクエリは常にその戻り型が推論されるため、リレーションをフェッチする場合でも、返されるデータを簡単に推論できます。
1// Inferred type:2// User & {3// posts: Post[];4// }5const user = await prisma.user.create({6 data: {7 email: 'alice@prisma.io',8 password: '0ee4808f893b8e05bdd251048d5c4c8af8bb89403676dda95619841a481f8e87',9 name: 'Alice',10 posts: {11 create: {12 title: 'Learn how to use Prisma with TypeScript',13 content: 'https://prisma.dokyumento.jp/docs/',14 },15 },16 },17 include: {18 posts: true,19 },20})
Prisma Clientでのクエリは常にその戻り型が推論されるため、リレーションをフェッチする場合でも、返されるデータを簡単に推論できます。
1// Inferred type:2// User & {3// posts: Post[];4// }5const user = await prisma.user.create({6 data: {7 email: 'alice@prisma.io',8 password: '0ee4808f893b8e05bdd251048d5c4c8af8bb89403676dda95619841a481f8e87',9 name: 'Alice',10 posts: {11 create: {12 title: 'Learn how to use Prisma with TypeScript',13 content: 'https://prisma.dokyumento.jp/docs/',14 },15 },16 },17 include: {18 posts: true,19 },20})
Prisma Clientは完全な型安全なデータベースクエリを保証し、無効なクエリを作成することがありません
Prismaに組み込まれたデータローダーは、N+1クエリであっても、最適化された高性能なデータベースクエリを保証します。
Prismaは、クエリ作成時に豊富なオートコンプリート機能でクエリ作成を支援します
Prisma Clientでのクエリは常にその戻り型が推論されるため、データを簡単に推論できます。
Prismaスキーマをデータベースにマッピングすることで、データベーススキーマを管理するためにSQLを記述する必要がなくなります。
Prisma Clientは、一般的なデータベース機能のための便利なAPIを提供することで、定型的なコードを削減します。
1const users = await prisma.user.findMany({2 where: {3 email: {4 endsWith: '@prisma.io',5 }6 },7 include: {8 p9 }10})
Prismaでは、私たちはTypeScriptを愛し、その明るい未来を信じています。Prismaの設立以来、私たちは TypeScriptコンパイラを限界まで 活用し、前例のない型安全なデータベースアクセスと、快適な開発者エクスペリエンスのための豊富なオートコンプリートを提供してきました。
Prismaは型安全性を核として構築されており、間違いを減らすことができます。TypeScriptの構造的型システムを活用することで、Prismaはデータベースクエリを 構造型に マッピングし、記述するすべてのPrisma Clientクエリについて、返されるデータの正確な形状を知ることができます。
TypeScriptベルリンミートアップは2019年に始まり、世界で最も人気のあるTypeScriptミートアップの一つです
Prisma、TypeScript、さまざまなフレームワーク、API技術を使用した、すぐに実行できるサンプルプロジェクト
hapiとPrismaでモダンなバックエンドを構築するためのチュートリアルシリーズ
コミュニティメンバーやPrismaチームと交流できる複数のチャネルがあります。