チュートリアルで作ったFedifyアプリのDBアクセス処理部分を、Prismaで書き換えてみることにした。
ちょっと書き方に工夫が必要な部分もあるけど、型が保証されることの安心感すごい(DBスキーマから考えて不可能なJOINなどの操作は、書けないようになっている)。

こちら一通り完了し、DBは作り直したものの従来同様に連合できることを確認した。
連鎖的にJOINできなそう(直接的にrelationが張られたテーブル同士でないとダメ)なのが気になる。whereに関しては連鎖的にrelationを辿って書けるが、それ用にJOINするSQLが生成されているらしく、下手するとほぼ同じSQL文が2回生成されてしまう。
せいぜい個人鯖なのでパフォーマンス面でそれほどシビアな状況はないと思うけれども。

@monaco_koukoku PrismaはJOINができる状況でもJOINをせずにN + 1のクエリをする場合が多いので、個人的にはDrizzle ORMを使っています。(こちらもタイプセーフです)

フォロー

@hongminhee ありがとうございます。ORMも色々あってどれが良いのか分からず、まだ自分に合うものを探しているところです。Drizzleも含めて色々試してみようと思います。

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。