2024/03/01分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Deprecate
ActiveRecord::Base.connection
in favor of.lease_connection
- Deprecate
ActiveRecord::ConnectionAdapters::ConnectionPool#connection
Make .connection
always return a permanently leased connection
Active Recordの修正です。
.connection
メソッドが必ずpermanently leased connectionを返すよう修正しています。ActiveRecord::Base.with_connection
の対応によりtransationの振る舞いが代わり、transaction中に.connection
を呼び出しても新しいconnectionを取得する事が保証されなくなりました。これが特定のgemで問題になる事がわかった為、.connection
メソッドの呼び出しについては必ずpermanently leased connectionを返すよう修正されています。合わせて、返ってくるのがleased connectionである事を明示する為、.connection
を.lease_connection
にリネームしています(古い方のメソッド名は互換性の為に使用出来る状態です)。
Update output of bin/rails test -h
in testing guide
rails guideのTesting Rails Applications
の修正です。
bin/rails test -h
の出力結果を最新の内容に更新しています。
Deprecate ConnectionPool#connection
Active Recordの修正です。
先の#lease_connection
メソッドの追加対応に合わせて、ActiveRecord::ConnectionAdapters::ConnectionPool#connection
メソッドをdeprecatedにしています。今後は同クラスの#lease_connection
メソッドを使用する必要があります。
同様にActiveRecord::Base.connection
もdepecatedになっており、今後はActiveRecord::Base.lease_connection
を使用する必要があります。こちらはsoft deprecationになっており、現状は使ってもdeprecated warningの表示は無く、削除の予定も未定になっています。
Fix a typo in ConnectionPoool#connection deprecation
activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
の修正です。
ActiveRecord::ConnectionAdapters::ConnectionPool#connection
メソッドを使用した場合のdeprecateメッセージ内でクラス名をタイポしていたのを修正しています。
Fix a typo in ConnectionPoool#connection deprecation (again)
activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
の修正です。
ActiveRecord::ConnectionAdapters::ConnectionPool#connection
メソッドを使用した場合のdeprecateメッセージ内でまだクラス名をタイポしていたのを修正しています。
Refactor InsertAll not to permanently lease a connection
activerecord/lib/active_record/insert_all.rb
、
activerecord/lib/active_record/persistence.rb
の修正です。
insert allを実行する際に、permanently lease a connectionを使用しないよう修正しています。前のバージョンのRailsと挙動を合わせる為。