2024/03/01分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Deprecate
ActiveRecord::Base.connectionin 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と挙動を合わせる為。