1. Prismaのセットアップ Prisma 入門ワークショップ(2021)
ゴール
このレッスンの目的は、Prismaをセットアップし、Prismaのデータモデリング言語を使いこなし、初めてのデータベース移行を行うことです。
レッスン
0. Prisma 入門ワークショップ(2021)
1. Prismaのセットアップ←ここ
2. Prisma Clientを使ってみる
3. Prisma Clientを使ってREST APIの作成
4. Prisma Clientを使ってGraphQL APIの作成
リソース
Prismaとは?
Node.js & TypeScript向けの完璧なORM
英語のドキュメント
https://www.notion.so/A-Practical-Introduction-to-Prisma-2021-ccf00a066ef4432caeb03da179e38302
Zoom ウェビナー
GitHub。
https://github.com/nikolasburk/prisma-workshop
セットアップ
まず、starter project from GitHubを、READMEの指示に従ってクローンします。スタータープロジェクトを自分のマシンにインストールしたら、次はこのレッスンで必要なデータベーステーブルを作成します。
タスク
レポをクローンして、npmの依存関係をインストールしたら、このレッスンのタスクに取り掛かる準備ができました💪
タスク 1: 最初のPrismaモデルを作成する
Prisma Schema (通常、schema.prisma
と呼ばれます)ファイルは、Prismaツールを使用するすべてのプロジェクトの核となるものです。現在のPrismaスキーマは以下のようになっています。
// prisma/schema.prisma
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
これは、datasource
でSQLiteデータベースファイルへのデータベース接続を指定し、generator
を指定してPrisma Clientを使用したいことを示します。
データソースとジェネレータに加えて、PrismaスキーマにはデータベースのテーブルをPrismaで表現したPrismaモデルも含まれています。このケースでは、最初のPrismaモデルを作成します。
まず、以下のフィールドを持つ User
モデルを作成します。最も適していると思われるデータ型を選択してください。
- id`: データベース内の各ユーザを一意に識別するための、自動インクリメントの整数値
- name`: ユーザの名前。このフィールドはデータベース内では optional でなければなりません。
- email`: ユーザのメールアドレス。このフィールドはデータベース内でrequiredかつuniqueでなければなりません。
準備ができたら、以下の解決策と結果を比較してみてください。
答え
model User {
id Int @id @default(autoincrement())
name String?
email String @unique
}
タスク 2: 最初のマイグレーションの実行
最初のモデルができたので、対応するデータベーステーブルを作成する準備ができました。ドキュメントを見て、ローカルマイグレーションを実行するのに役立つPrisma CLIコマンドを見つけてください。コマンドが見つかったら、それを実行して、マイグレーションに適切な名前(例:init
)をつけてください。
答え
npx prisma migrate dev --name init
このコマンドが正しく実行された場合、prisma
ディレクトリ内のプロジェクトに、2つの新しいものが追加されます。
- データベースのマイグレーションを記録する
migrations
ディレクトリ - SQLite データベースファイルである
dev.db
ファイル
タスク 3: Prisma Studio によるデータベースレコードの作成
おめでとうございます。次のセクションに進む前に、Prisma Studioを使って、いくつかのデータベースレコードを作成してみましょう。以下のコマンドを実行して、Prisma Studioを開きます。
npx prisma studio
開いたら、User
テーブルに3つのレコードを作成し、データベースに保存します。
Discussion