チュートリアルで作った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も含めて色々試してみようと思います。
様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。