Railsで見えたActiveRecord vs Prisma
Photo by Robert Katzki on Unsplash
目次
Prisma ORMの利点と特徴
ActiveRecordとの出会い
どう使い分けるか
私は普段Next.js × Prisma ORMを利用し開発を進めています。
理由はORMを挟むことでDBの差し替えが必要になってもデータの作成、取得、更新、削除といった基本操作を、Prismaが提供する同じ方法で行えるためです。
もしORMを挟まずPostgresからMySQLに移行したいとなると、書き直しが必要です。
未経験だからこそ変更は抑えつつも必要なら柔軟かつ迅速に対応したい、そんな願いを叶えてくれるのがPrisma ORMでした。
Prisma ORMの利点と特徴
先述した通りPrisma ORMとしてデータベースの差異を吸収します。
同時に、Prismaの特徴はスキーマを変更した時にSQLが発行される点にあると考えます。
マイグレーションファイルが生成されるため、それを読むことがSQLでのテーブル変更の方法の学習に繋がります。
他にはPrisma Studioを用いればWeb上でデータの確認や変更を容易に行えることが、開発での改善やバグの早期発見に繋がっています。
ダイアグラムによりテーブルデータ同士の関係性が把握しやすいのも利点ですね。
ActiveRecordとの出会い
ActiveRecordはRailsにあるデータベース操作のための仕組みです。
Prisma同様データベースの差異を吸収することで、SQLiteからPostgreSQLへの差し替えといった、デプロイ先で利用できるストレージへの対応が可能になります。
ActiveRecordの特徴は、Primsaと異なりデータベース変更時に「自分でRubyコードを書く」ことにあると考えます。
項目を追加したいならそのコードを書くのでプログラミングという「命令」近く、対するPrismaは「データベースはこうあるべき」という「宣言」だと感じます。
どう使い分けるか
正直なところ、経験不足もありどちらがどう適しているか明確なことは言えません。
それぞれに異なる思想や哲学があって、データベース変更時のやり方の違いがあると考えています。
ですから、今後は少しずつでも両者が目指すもの、立ち位置、歴史、それらを読み解く方が必要だと痛感しています。