Skip to content

entでMaterialized Viewを使いたい

PostgreSQLにはマテリアライズドビューといって事前にViewを計算しておく仮想的なテーブルがある。一度の更新で何度も同じViewを参照する場合には、パフォーマンスの面で有利に働く。

これをentで扱うためにはテーブルを表現するための型が必要だけど、ent/schema以下に書いてしまうとマイグレーションでテーブルとして扱われて困る。公式リポジトリにFeature: Views, Triggers, Functionsというイシューがあったけど、entとして対応する価値がないとしてクローズされていた。

では現状どうすればいいのかというと、SQL Raw APIがあるらしいので、entで統合するのは諦めて生のSQLを書くしかないのではなかろうか。