Prisma Studio
Prisma Studioは、データベース内のデータを視覚的に編集するためのツールです。Prisma Studioはオープンソースではありませんが、prisma/studio
リポジトリで引き続きissueを作成できます。
ターミナルでnpx prisma studio
を実行してください。
モデル(テーブルまたはコレクション)
Prisma Studioを初めて開くと、Prismaスキーマファイルで定義されているすべてのモデルのリストがサイドバーに表示されたデータテーブルレイアウトが表示されます。
モデルとは?
モデルという用語は、Prismaスキーマファイルに追加するデータモデル定義を指します。使用するデータベースによって、model User
のようなモデル定義は、リレーショナルデータベース(PostgreSQL、MySQL、SQL Server、SQLite、CockroachDB)のテーブル、またはMongoDBのコレクションを指します。
詳細については、モデルの定義を参照してください。
モデルを選択すると、そのデータが新しいタブで開きます。この例では、User
モデルが選択されています。
モデルを開閉する
別のモデルを開くには、サイドバーでモデルを見つけてクリックします。
モデルを閉じるには、モデルタブのXボタンをクリックします。複数のモデルが開いている場合は、「すべて閉じる」をクリックしてすべてのモデルを閉じることもできます。
モデルのデータ型アイコン
各フィールドのデータ型は、ヘッダーにアイコンで示されています。
以下の表に、すべてのデータ型とそれを示すアイコンを示します。
フィールドデータ型 | 説明 |
---|---|
テキスト | |
整数 | |
日時 | |
ブーリアン | |
事前定義された値のリスト(enum データ型) | |
別のモデルからの関連レコードのリスト | |
{} 記号は、2種類のフィールドのいずれかを指すことができます。• リレーションフィールド • JSONフィールド |
モデルでのキーボードショートカット
モデルを開くと、モデル内のデータを閲覧および操作するためのいくつかのキーボードショートカットが利用できます。
注
Prisma Studioを開いた状態で、macOSではCmd ⌘+/、WindowsではCtrl+/を押すことでキーボードショートカットのモーダルを開くことができます。
データを編集する
Prisma Studioには、既存のデータを編集するための2つのメカニズムがあります。インライン編集とサイドパネル編集です。
インライン編集
データをインラインで編集するには、セルをダブルクリックして編集モードに入ります。これにより、カーソルがセル内に配置され、データを編集できるようになります。データはセルにコピー&ペーストできます。
すべての変更(追加、編集、削除)は、有効にする前に確認が必要です。追加および編集されたレコードは変更を保存ボタンで確認します。レコードを選択してレコードを削除をクリックする場合は、ダイアログボックスで削除を確認します。
追加された複数のレコードや編集されたセルを蓄積し、変更を保存ボタンで最終確定することができます。
データの編集が完了したら、緑色の保存ボタンをクリックします。
一括編集
複数のレコードを一度に編集できます。任意のセルをダブルクリックして値を編集し、必要に応じて他のセルに移動します。完了したら、緑色の保存ボタンをクリックします。
サイドパネル編集
Prisma Studioは、データを編集するためのサイドパネルも提供しています。サイドパネルを開くには、表示されているすべてのレコードの一番左にある選択チェックボックスの横にあるサイドパネルを編集アイコンをクリックします。
アイコンをクリックすると、右側にサイドパネルが開き、編集を行うことができます。完了したら、サイドパネルの外側をクリックし、緑色の保存ボタンをクリックして変更を保存します。
レコードを削除する
- 左側の列から、削除したいレコードのチェックボックスを選択します。
- n件のレコードを削除をクリックします。
- 確認ダイアログで削除をクリックします。
複数のレコードを選択し、レコードを削除ボタンで一度に削除できます。複数のレコードを削除する場合、操作は(確認後)すぐに完了します。
さらに、追加または編集されたレコードが蓄積されている状態でレコードを削除することにした場合、削除操作は蓄積された編集も強制的に保存します。
警告
レコードの削除は、蓄積できない個別の操作です。保存されていない編集がある状態でレコードを削除すると、削除操作はまず保存されていない編集を強制的に保存し、その後完了します。
蓄積された変更は、変更を破棄ボタンで破棄できます。
コピー&ペースト
任意のテーブルセルの値をコピーするには、次を使用します。
- Cmd ⌘ + C (macOS)
- Ctrl + C (Windows)
別のセルにペーストするには、まずセルをダブルクリックして編集モードに入り、その後次を使用します。
- Cmd ⌘ + V (macOS)
- Ctrl + V (Windows)
レコードを追加する
-
モデルビューで、レコードを追加をクリックします。
-
各フィールドで許可されているデータに基づいて、レコードのデータを入力します。
フィールドデータ型 説明 テキスト 整数
そのようなフィールドにautoincrement()
が事前入力されている場合、セルを編集したり、手動で数値を追加したりしないでください。日時
日時フィールドには、数字、文字などが長い文字列で含まれています。ベストプラクティスとして、別の日時セルの値をコピーし、必要に応じて変更してからフィールドに貼り付けてください。ブーリアン true
またはfalse
を選択します。事前定義されたリスト
フィールドのセルをダブルクリックし、事前定義されたオプションのいずれかを選択します。別のモデルからの関連レコードのリスト
これは通常、データベース内の別のモデルに存在するレコードのリストを指します。新しいレコードを追加していて、関連モデルからのレコードがまだ存在しない場合、現在のモデルに何も入力する必要はありません。{}
記号は、2種類のフィールドのいずれかを指すことができます。
• リレーションフィールド
• JSONフィールド
データベースで別途定義されたモデルとのリレーション
通常、以前のレコードのいずれかと同じ値を選択する必要があります。
モデル名をクリックすると、関連フィールドに選択できる値のリストが表示されます。
JSONフィールド
フィールドをダブルクリックしてJSONデータを編集します。ベストプラクティスとして、編集したJSONデータをバリデータで検証し、セルに戻してください。 -
(オプション)変更に満足できない場合は、変更を破棄をクリックしてやり直してください。
-
1件の変更を保存をクリックします。
フィルター
データをフィルターする
フィルターメニューを使用して、条件を追加することでモデル内のデータをフィルターします。
フィルターメニューでは、最初に追加する条件はwhere
句です。
複数の条件を追加すると、Prisma Studioはすべての条件が組み合わせて適用されるように結果をフィルターします。新しい条件ごとに、先頭に表示されるand
演算子でこれを示します。
手順
-
フィルターをクリックして、フィルターメニューを開きます。
情報注
メニューを非表示にしたい場合は、再度フィルターをクリックします。 -
新しいフィルターを追加をクリックします。
-
条件を設定します。
- フィルターしたいフィールドを選択します。
- 比較演算子を選択します。
- 等しい
- in
- notin
- lt
- lte
- gt
- gte
- not
- 条件に使用したい値を入力します。
ステップ結果: Prisma Studioは、条件に基づいてモデル内のデータを即座に更新します。
-
新しいフィルターを追加するには、新しいフィルターを追加をクリックし、上記の手順を繰り返します。
-
フィルターを削除するには、右側のxボタンをクリックします。
-
すべてのフィルターを削除するには、すべてクリアをクリックします。
結果
- モデル内のデータは、追加したすべての条件の組み合わせに基づいてフィルターされます。
- フィルターメニューでは、デフォルト値のなしが、追加したフィルターの数を表示するように変更されます。
フィールドの表示と非表示
フィールドメニューを使用して、表示または非表示にするフィールドを選択できます。
フィールドとは?
フィールドは、Prismaスキーマファイル内のデータモデル定義に追加するモデルのプロパティです。使用するデータベースによって、model User { title String }
のtitle
フィールドのようなフィールドは、リレーショナルデータベース(PostgreSQL、MySQL、SQL Server、SQLite、CockroachDB)のカラム、またはMongoDBのドキュメントフィールドを指します。
詳細については、フィールドの定義を参照してください。
手順
- フィールドメニューをクリックします。
- 表示したいフィールドのみを選択し、非表示にしたいフィールドの選択を解除します。
結果
モデルは、選択を解除したフィールドのデータを非表示にするように即座にフィルターされます。
また、フィールドメニューには、現在選択されているフィールドの数が表示されます。
レコードの表示と非表示
モデルビューで、特定の数のレコードを表示またはスキップするように選択することもできます。
レコードとは?
レコードは、リレーショナルデータベース(PostgreSQL、MySQL、SQL Server、SQLite、CockroachDB)におけるテーブルのデータ行、またはMongoDBにおけるドキュメントを指します。
手順
- 表示中メニューをクリックします。
- 取得ボックスに、モデルビューで表示したいレコードの最大数を指定します。
- スキップボックスに、最初のレコードのうち何件を非表示にしたいかを指定します。
結果
モデルは、選択に基づいてレコードを表示または非表示にするように即座にフィルターされます。
表示中メニューは、モデル内の利用可能なレコード数に対して何件のレコードが表示されているかを示します。
データをソートする
フィールドのタイトルをクリックすると、フィールドデータでソートされます。
最初のクリックでデータを昇順にソートし、2回目のクリックで降順にソートします。
トラブルシューティング
ターミナル: スクリプトの実行に失敗 / Prisma Clientリクエストのエラー
キャッシュの問題により、Prisma Studioが古いバージョンのクエリエンジンを使用する場合があります。以下のエラーが表示されることがあります。
Error in request: PrismaClientKnownRequestError: Failed to validate the query Error occurred during query validation & transformation
解決するには、以下のフォルダを削除してください。
- macOSおよびLinux上の
~/.cache/prisma
- Windows上の
%AppData%/Prisma/Studio