LoginSignup
14
8

More than 1 year has passed since last update.

prisma チートシート (CLI)

Last updated at Posted at 2023-02-27

概要

前置き

( ◜◡◝ )
prisma の CLI の汎用コマンドについてまとめるよ
prisma client のチートシートに関しては別記事で書くよ

要約

コマンド 説明
npx prisma init prisma の初期設定を行う
npx prisma migrate dev ローカル で schema をDBへ反映
npx prisma migrate deploy 商用、ステージングでschema をDBへ反映
npx prisma db seed マスタデータの流し込み
npx prisma generate prisma client の生成
npx prisma studio GUI でデータを見る
npx prisma format schema に format をかける
npx prisma validate schema での error を確認
npx prisma introspect 既存DBから schema を生成
npx prisma db pull DBの変更を schema へ反映
npx prisma db push schema の変更を migration を生成せずにDBへ反映
npx prisma version prisma のversion 情報を出力

よく使うコマンド(詳細)

init

( ◜◡◝ ) < 必須機能

init とは
対象 app で prisma の利用を開始する

  • npx prisma init
    → プロジェクトに prisma を導入、必要ファイルを自動生成してくれる。

migrate  (まいぐれーと)

( ◜◡◝ ) < 必須機能

migrate とは
schema で定義したデータモデルをDBに反映させること
DDL 的なもの

migration には

  • npx prisma migrate dev
    → 開発環境で実行する。
    → prisma client の生成, seed の実行 まで一括して行われる。

  • npx prisma migrate deploy
    → 本番環境, tes環境などで 事前に担保されたデータモデルの変更を適用する際に使用する。
    → 実行後,DB に変更が反映されるが別途 prisma client の生成が必要

の2種類ある。

Schema で表現できないSQLをmigration として管理したい場合

prisma migrate dev --name initial-migration --create-onlyinitial-migration に任意のファイル名)
→ 空 migration ファイルを作成し、任意のSQL をmigrationとして管理することが可能

seed (しーど)

( ◜◡◝ ) < 割と使うよ

seed とは
seed.js で定義したマスタをDBへ流し込む
DML 的なもの

  • npx prisma db seed
    → seed.js での記述を元にマスタへデータを流し込む

generate (じぇねれーと)

( ◜◡◝ ) < 忘れがちだよ

generate とは
schema で定義したものを元に prisma client を生成する。

  • npx prisma generate
    → バックエンドサーバで DB へのアクセスするための prisma client の生成を行う。

studio (すたじお)

( ◜◡◝ ) < なくてもいいけど便利だよ

  • npx prisma studio
    → 実行することによって、GUI でDBの中身を閲覧、編集できる。
    → schema, client, DB 全て同期されていないとエラーが起きる。

覚えてたらいいコマンド

format (ふぉーまっと)

( ◜◡◝ ) < VS Code の拡張でいいかな

npx prisma format
schema.prisma を format する

validate (ばりでーと)

( ◜◡◝ ) < VS Code の拡張でいいかな

  • npx prisma validate
    schema.prisma を確認しエラーをログとして出力する。

introspect (いんとろすぺくと)

( ◜◡◝ ) < 途中からprisma を導入するなら便利かも

  • npx prisma introspect
    → 既存のDBから schema.prisma新規生成する

pull (ぷる)

( ◜◡◝ ) < 個人的に使いたくない

  • npx prisma db pull
    → 既存のDBから schema.prisma更新する

introspect は初回のみ実行でき、schema.prisma を新規生成する。
pull は schema.prisma を通さず 直接行われた DB の変更を schema.prisma に反映させる。
→ できる限り、直接DBを触らない方が管理しやすい。

push (ぷっしゅ)

( ◜◡◝ ) < 意外と便利?

  • npx prisma db push
    schema.prisma をもとに dbを更新する。(migration ファイルを生成せずに)

migration ファイルを生成しないことのメリット

ローカル環境で、データモデルのプロトタイピングをする際、 schema.prisma の version を更新せずにデータモデルの変更を試すことができる。

version (ばーじょん)

( ◜◡◝ ) < それはそう

  • npx prisma version --json
    → prisma の version 情報諸々を json 形式で出力する。
14
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
8