【要約】prisma migrate resolveを使ってRails+Prismaのマイグレーションを共存させる [Qiita_Trend] | Summary by TechDistill
// Problem
RailsとPrismaが同一DBを参照する場合、Rails側で行われたスキーマ変更をPrismaが検知できず、prisma migrate deploy 実行時に二重適用エラーが発生する。既存のベースライン手法では、継続的に追加されるRails側のマイグレーションに対して、都度手動で対応しなければならない点が課題である。
// Approach
Rails由来のマイグレーションファイルに特定の命名規則を付与し、CI実行時に _prisma_migrations テーブルを直接参照するスクリプトを導入する。未適用のRails由来マイグレーションのみを prisma migrate resolve --applied で「適用済み」としてマークすることで、SQLの実行をスキップしつつ履歴の整合性を保つ。
// Result
Railsによるスキーマ変更をPrismaの管理下に安全に取り込めるようになり、CIでのデプロイフローを自動化・冪等化できる。これは、Prismaへの完全移行を目指す過渡期における、現実的かつ堅牢なワークアラウンドとして機能する。
Senior Engineer Insight
複数ORMの共存という、現場で発生しうる極めて泥臭い課題に対し、Prismaの内部仕様を深く理解した上での実戦的な解法である。特に、CIでの冪等性を確保するために _prisma_migrations を直接SELECTするアプローチは、単なる回避策を超えた、エンジニアリングの合理性が感じられる。ただし、本手法は「Railsの変更をPrismaに同期させる」という手動プロセスを前提としており、開発サイクルにおける運用コストの増大は避けられない。あくまでPrismaへの一本化を前提とした「暫定的な橋渡し」として、移行期間の短縮と引き換えに運用負荷を受け入れるという、戦略的な判断が求められる技術である。