YASD-TECH
YASD TECH
# Prisma

Prisma

投稿日:2026/4/26

更新日:2026/6/29

ttitleImage

CLIだからexecらしい

pnpm -F backend exec prisma migrate status

マイグレーション関連の記事(# Prismaのマイグレーション管理に入門する)
https://qiita.com/rummy_p/items/768308d82a101d1ff6e4

Railsとの比較
https://zenn.dev/shigerufukada/articles/47adaa1aa6caad

_prisma_migrations

これが癖強い


最新のマイグレーションの状態?

psql "postgresql://workschool_certification_admin:password@localhost:5665/workschool_certification" \
    -c "SELECT migration_name, finished_at FROM certification._prisma_migrations ORDER BY started_at DESC LIMIT 10;"

削除

psql "postgresql://workschool_certification_admin:password@localhost:5665/workschool_certification" \
    -c "DELETE FROM certification._prisma_migrations WHERE migration_name IN ('20260411084924_', '20260412062704_');"
項目 migrate dev migrate deploy
用途 開発時:スキーマ変更を検知して新しいマイグレーションを生成し適用 既存のマイグレーションファイルを適用するだけ
インタラクティブ 必要(ファイル名の入力など) 不要
新規マイグレーション生成 する しない
ドリフト検知 する(DBとスキーマの差分を警告) しない
主な用途 開発中にスキーマを変更したとき CI/CD・本番デプロイ・既存ファイルの適用

DB設計メモ

  • 業務ルールに関わる値は schema.prismadefault(...) を置かない。
  • default は、移行時にだけ migration.sql で一時的に使う。
  • 既存データを backfill したあと、migration の最後で default を外す。
  • 最終的な Prisma schema は、アプリが必ず値を設定する前提だけを表現する。
  • 文字列ステータスや業務上の選択値は、DB で勝手に補完させずアプリ側で明示設定する。

Index

  • DB設計メモ