upsert gem 使用時の PG::UnknownColumn (エラー: 列 d.adsrc が存在しません)
概要
現在、プロジェクトのさまざまな操作に Upsert gem を使用しています。具体的には、複数の場所で Upsert.batch に依存しています。最近、PostgreSQL バージョン 15 にアップグレードしようとしました。しかし、Upsert で使用される「d.adsrc」列が PostgreSQL 12 以降のバージョンには存在しないため、Upsert は PostgreSQL 15 では機能しないようです。 。
Upsert gem のドキュメントによると、これは PostgreSQL 12 と互換性があるはずで、私は PostgreSQL 15 でも同様に動作すると考えていました。すでに Upsert gem をバージョン 2.9.9 に更新し、pg gem も最新バージョンに更新しましたが、まだ問題が発生しています。
このシナリオで Upsert を PostgreSQL 15 で動作させる方法について何か提案や洞察はありますか?可能であれば、今のところ Rails 6 へのアップグレードは避けたいと思っています。
解決策
最新バージョンではありません。私が確認した限り、pg12+ の adsrc 修正は 2.9.10 でプッシュされました。
実際には、2.9.10 がプッシュされる直前に、adsrc をコードベースに戻す変更の不注意によるリグレッションがあったようですが、それは gem バージョンとしてデプロイされなかった e69104e まで修正されませんでした。
したがって、代わりにそのバージョンを使用します。
gem "upsert", github: "seamusabshere/upsert", ref: "e69104e"
プロのヒント: 私は実際にプロジェクトを自分のリポジトリにフォークし、それを参照するつもりなので、このプロジェクトがなくなることは決してないことはわかっています。