なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2024/03/01)

2024/03/01分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activerecord/CHANGELOG.md


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.rbactiverecord/lib/active_record/persistence.rbの修正です。

insert allを実行する際に、permanently lease a connectionを使用しないよう修正しています。前のバージョンのRailsと挙動を合わせる為。