
Prismaってなに?【前編】
2023.06.12
はじめに
こんにちは!
遅くなりましたが、明けましておめでとうございます!
いよいよ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は大きく、五つで分けます。
- Prisma schema
- Prisma introspect
- Prisma migration
- Prisma client
- Prisma studio
Prisma schema?
- Prisma schemaはGenerator、Data Sources、Data Model三つで構成されています。
以下は、schema.prismaファイルの例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // schema.prisma // This is your Prisma schema file, // learn more about it in the docs: https://pris.ly/d/prisma-schema generator client { // Generator - Prismaのコマンドを実行する環境を決める場所です。 provider = "prisma-client-js" } datasource db { // Data Source provider = "mysql" // DB種類 url = env("DATABASE_URL") // 接続するDB、直接入力も可能です。 } model User { // Data Model - PSL(Prisma Schema Language)使用。FieldとFieldTypeの設定が可能。1:n、n:m制約条件等可能 id BigInt @id @default(autoincrement()) name String @unique @db.VarChar(255) @@map("users") // ここを設定するとテーブルの名前を変更できます。 } |
引用:https://www.prisma.io/docs/concepts/components/prisma-schema
Prisma introspect?
- Prismaでは、既存のDBの修正をORMにマッピングする必要はありません。
DBのURLを設定し、「npx prisma introspect」なら、既存のDBの構成を自動でPrisma Schemaに引き寄せます。
1 2 3 | npx prisma db pull // update prisma schema npx prisma generate // update prisma ... |
引用:https://www.prisma.io/docs/concepts/components/introspection
Prisma migration?
- 新しいテーブルを作るか、既存んテーブルにcolumnを追加する等のDatabaseを変更します。
Prisma schemaを変更することで、行われるのでSQLを作成しなくてもいいです。
1 2 3 4 | // 以下のコマンドで、schemaをDBに反映し、prisma clientをupdate npx prisma migrate dev // migrate 反映 npx prisma generate // client update ... |
引用:https://www.prisma.io/docs/concepts/components/prisma-migrate
Prisma client?
- clientはデータに合わせて、自動でQuery生成するものです。
1 2 3 4 5 6 7 8 9 10 11 | import { PrismaClient } from '@prisma/client' const prisma = new PrismaClient() // PrismaClientから実行 const createUser = await prisma.user.create({ // userの生成 data: { name: 'TestUser', }, }) const fineUsers = await prisma.user.findMany() // 現在持っているuserデータを全て検索 |
引用: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を使ってみましょう!!
最後まで読んでいただき、ありがとうございました!🙇♂️
書いた人はこんな人

IT技術10月 31, 2023DRシステムって?
IT技術1月 20, 2023Prismaってなに?【前編】
IT技術10月 19, 2022VueのLifeCycleっていうのは???
ライトコードの日常8月 29, 2022YOUは何しにライトコードへ?〜イデさん編〜