1. HOME
  2. ブログ
  3. IT技術
  4. Prismaってなに?【前編】

Prismaってなに?【前編】

はじめに

こんにちは!
遅くなりましたが、明けましておめでとうございます!

いよいよ2023年になりましたね。2023年初めての記事は。。?

「Prisma」です!!!

今回の記事はシリーズです!
よろしくお願いいたします。

ORMってなに?

みなさん、ORMってご存知ですか?

ORM(Object-Relational Mapping)というのは、Object(Class)とRelation(RDB)の設定の意味です。
ここで、ObjectModelとRelationModelの不一致が存在しますが、それをObjectの関係を利用して
SQLを生成し、不一致の問題を解決するのがORMとなります。

例)Object ← Mapping → DB

Prismaってなに?

Is Prisma an ORM?(PrismaはORMですか?)

To answer the question briefly: Yes, Prisma is a new kind of ORM that fundamentally differs from traditional ORMs and doesn't suffer from many of the problems commonly associated with these.

簡単に質問に答えると : はい、プリズマは従来のORMとは根本的に異なる新しい種類のORMであり、これらに関連する一般的な問題の多くに悩まされない。

引用:https://www.prisma.io/docs/concepts/overview/prisma-in-your-stack/is-prisma-an-orm

そうです。上に書いてる通り、PrismaはORMです。
そして、既存のORMの問題にかかりません。って書いてますね。

見てみましょうか?

Prismaの構成

Prismaは大きく、五つで分けます。

  1. Prisma schema
  2. Prisma introspect
  3. Prisma migration
  4. Prisma client
  5. Prisma studio

Prisma schema?
- Prisma schemaはGenerator、Data Sources、Data Model三つで構成されています。
以下は、schema.prismaファイルの例です。

引用:https://www.prisma.io/docs/concepts/components/prisma-schema

Prisma introspect?
- Prismaでは、既存のDBの修正をORMにマッピングする必要はありません。
DBのURLを設定し、「npx prisma introspect」なら、既存のDBの構成を自動でPrisma Schemaに引き寄せます。

引用:https://www.prisma.io/docs/concepts/components/introspection

Prisma migration?
- 新しいテーブルを作るか、既存んテーブルにcolumnを追加する等のDatabaseを変更します。
Prisma schemaを変更することで、行われるのでSQLを作成しなくてもいいです。

引用:https://www.prisma.io/docs/concepts/components/prisma-migrate

Prisma client?
- clientはデータに合わせて、自動でQuery生成するものです。

引用:https://www.prisma.io/docs/concepts/components/prisma-client

Prisma studio?
- studioはブラウザ上で見れるDBツール(GUI対応)です。
「npx prisma studio」で見れます。

引用:https://www.prisma.io/docs/concepts/components/prisma-studio

最後に、、、

ここまでPrismaに関する簡単な説明でした。

Prismaって結構楽なものです。
次の記事では、実際にPrismaを使ってみましょう!!

最後まで読んでいただき、ありがとうございました!🙇‍♂️

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア