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()
が事前に入力されている場合は、セルを編集したり、手動で数字を追加したりしないでください。日付-時刻
日付-時刻フィールドには、数字、文字などが長く連なっています。ベストプラクティスとして、別のdate-timeセルの値をコピーし、必要に応じて変更してからフィールドに貼り付けます。真偽値 true
またはfalse
を選択します。定義済みリスト
フィールドのセルをダブルクリックし、定義済みのオプションの1つを選択します。別のモデルからの関連レコードのリスト
通常、データベース内の別のモデルに存在するレコードのリストを指します。新しいレコードを追加していて、関連モデルのレコードがまだ存在しない場合は、現在のモデルに何も入力する必要はありません。{}
記号は、2種類のフィールドのいずれかを表すことができます。
• リレーションフィールド
• JSONフィールド
データベースで個別に定義されたモデルとのリレーション
通常、以前のレコードのいずれかと同じ値を選択する必要があります
モデルの名前をクリックして、関連フィールドに選択できる値のリストを表示します。
JSONフィールド
フィールドをダブルクリックしてJSONデータを編集します。ベストプラクティスとして、編集したJSONデータをバリデーターで検証し、セルに貼り付け直します。 -
(オプション)変更に満足できない場合は、変更を破棄 をクリックしてやり直してください。
-
1件の変更を保存 をクリックします。
フィルター
データをフィルタリングする
フィルター メニューを使用して、条件を追加することによりモデル内のデータをフィルタリングします。
フィルター メニューで、最初に追加する条件は where
句です。
複数の条件を追加すると、Prisma Studioはすべての条件が組み合わせて適用されるように結果をフィルタリングします。新しい各条件は、前に表示される and
演算子でこれを示します。
手順
-
フィルター をクリックして、フィルター メニューを開きます。
情報注
メニューを非表示にする場合は、もう一度 フィルター をクリックします。 -
新しいフィルターを追加 をクリックします。
-
条件を設定します。
- フィルタリングするフィールドを選択します。
- 比較演算子を選択します。
- equals(等しい)
- 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