【初心者用】Prismaについて
Prismaは、データベース操作するためのORMです。
Prismaを使用することで、データベースのスキーマを定義し、型安全なクエリを実行できます。
また、Prismaは、Prisma Migrateと呼ばれるマイグレーションツールなどを提供しています。
データベースのスキーマ変更に伴うマイグレーションを簡単に行うことができます。
具体的には、prismaを使用することで、以下のようなことが可能です。
・データベースのスキーマ定義
・データのクエリ
・データの作成、更新、削除
・データの関連付け
Prismaは、Prisma Clientと呼ばれる型安全なクライアントライブラリも提供しています。
これにより、SQLクエリを直接記述する必要がなくなります。
1. Prismaを導入するメリット
Prismaを導入することで、以下のメリットがあります。
1.型安全なクエリビルダーを提供することで、コードの一貫性を保ちます。
これにより、開発者は、SQLを書く必要がなくなります。
2.データベーススキーマの変更を自動的に検出し、マイグレーションを実行します。
これにより、開発者は手動でマイグレーションを実行する必要がなくなります。
3.Node.jsとTypeScriptとの相性がよく、開発者が迅速かつ簡単にアプリケーションを構築できるように設計されています。
4.SQLインジェクション攻撃から保護するために、型安全なクエリビルダーを提供します。
2. Prismaとは?
Prismaは、アプリケーションを構築する際に、データを保存するため必ずデータベースが必要になります。
データベースを効率的に管理し、簡単に操作を行うためのツールがprismaです。
Prismaは、Node.js ORMの1つです。
Node.jsには、リレーショナルデータベースに対する、統一的なインターフェースが存在しないため、ORMを利用することで、各データベースへのアクセスを一律に担ってくれます。
3. ORMとは?
ORMは、Object-Relational Mappingの頭文字をとったものです。
プログラミング言語のオブジェクトで定義したメソッドで、SQLを書かずにデータベースの操作が可能なツールです。
データベースの操作や仲介する役割をもち、データベースの作成やマイグレーションといった操作も可能です。
4. なぜNode.jsにORMを利用するのか?
Node.jsでは、リレーショナルデータベースにアクセスするには、npmパッケージを利用します。アクセス方法は各データベースによって違います。
各データベースごとに公式、非公式問わずのnpmパッケージが複数存在し、各データベースのnpmパッケージは開発、保守が止まっているものもあるため、npmパッケージの選定を慎重に行う必要があります。
ORMを使用することで、SQL文を書く必要がなくなり、アプリケーションのModelとデータベースのテーブルのマッピングさえしていれば、データベースの操作ができるようになります。
さらにORMは、型安全性や自動補完機能などの機能を提供することができます。
これにより、開発者はコードの一貫性を保ちやすくなります。
以上のことから、Node.jsにORMを導入することで、開発者はSQL文を書く必要がなくなり、データベース操作を簡単に行えるようになるため、開発効率が向上します。
5. Prismaの構成
・Prisma Schema
Prisma Schemaは、Prismaで使用するデータモデルを定義するファイルです。データベースの接続設定やモデル定義を記述するためのファイルで、このファイルを更新することで、データベーススキーマとPrimaクライアントが同期されます。
Prisma Schemaは、Generator、Data Sources、Data Modelの三つで構成されています。
以下は、schema.prismaファイルの例になります。
例
https://www.prisma.io/docs/concepts/components/prisma-schema
・データソース(Data Sources):Prismaが接続するデータソースの詳細を指定します。
・ジェネレーター(Generator):データモデルに基づいてどのクライアントを生成するか指定します。
・モデル( Model):アプリケーションモデルとその関係を指定します。
Prisma Schemaは通常、プロジェクトのデータベースモデルを明示的に定義し、Prismaのコード生成機能を使用して、データベースへのクエリを型安全に行うために使用します。
このPrisma Schemaは、UserとPostという2つのモデルを定義し、それらのモデル間に関連性を設定しています。Prismaを使用すると、このスキーマを基にデータベースを作成し、Prisma Clientを生成して型安全なクエリを実行できます。
・Prisma Introspect
Prisma Introspectは、Prisma CLIを使用して、既存のデータベーススキーマからPrismaスキーマを生成するためのツールです。DBのURLを設定し、既存のDBの構成を自動でPrisma Schemaに引き寄せます。
・Prisma Migration
Prisma Migrationは、データベーススキーマのマイグレーションを宣言的に行うためのツールです。新しいテーブルを作ったり、既存のテーブルにcolumnを追加するなどのデータベースを変更します。
.sqlマイグレーションファイルの履歴を生成し、開発とデプロイメントの両方で役割を果たします。
・Prisma Client
Prisma Clientは、Prismaで生成されたデータモデルを使用して、データベースに対するクエリを実行するためのタイプセーフなデータベースクライアントです。このクライアントは、TypeScriptのメソッドを使用して、SQLを記述することなくデータベース操作をすることができます。
・Prisma Studio
Prisma Studioは、Prismaを使用する場合に、GUIでデータベースの操作を行うことができるツールです。タブ形式のインターフェイスを備えたエディターで、ローカルデータベースのデータを簡単に操作できます。
フィルタリング、ソート、ページネーションなどの機能を使用して、データ表示する方法を自由に選択できます。
また、関連するデータに簡単にアクセスし、関連するモデルにドリルダウンすることもできます。
例
https://www.prisma.io/docs/data-platform/classic-projects/platform/data-browser
様々なデータベース、フレームワーク・ライブラリとの連携が可能です。
・データベース
・PostgreSQL・MySQL
・SQLite
・MongoDB
etc..
・フレームワーク・ライブラリ<
6. まとめ
今回、Prismaについてまとめて紹介し解説しました。
Prismaに関する簡単な説明でしたが、Prismaはすごく便利な機能です。
Node.jsでの開発する際に、データベース操作のやりとりを手軽にできるため、お試しで作成してみてもいいのではないでしょうか。