概要
前置き
( ◜◡◝ )
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-only
(initial-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 形式で出力する。