2022/04/26分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #44903 from rails/interlock
railties/lib/rails/application/finisher.rb
の修正です。
reloadが有効の場合、eager loadの設定に関わらずinterlock hookの登録処理を行うよう修正しています。Zeitwerk loaderの場合、eager loadの指定はinterlock hookの登録には影響無い筈の為。
Merge pull request #44944 from ghiculescu/multi-db-reading-request
activerecord/lib/active_record/middleware/database_selector.rb
、
activerecord/lib/active_record/middleware/database_selector/resolver.rb
の修正です。
DatabaseSelector::Resolver
のreading_request?
メソッドをresolverでoverride出来るよう修正しています。POST
メソッドもread対象にしたい場合(GraphQLを使っている場合等)にアプリ側で対応出来るようにする為。
Merge pull request #44935 from dorianmariefr/patch-1
railties/lib/rails/generators/app_base.rb
の修正です。
rails new
のskip_git
オプションのdescにgit init
が実行されない、.gitattributes
も生成されない旨説明を追加しています。
Merge pull request #44446 from Shopify/async-aggregates
Active Recordの修正です。
Active Recordに、async queryを生成する為のAPIを追加しています。
通常のAPIとは別に、async_count
やasync_pluck
のようにasync_xx
という形でメソッドが追加されています。これらのメソッドは呼び出しただけだとSQLは実行されない(ActiveRecord::Promise
)ようになっており、実際のSQLはActiveRecord::Promise#value
を呼び出したら実行されるようになっています。
promise = Post.where(published: true).async_count # => #<ActiveRecord::Promise status=pending> promise.value # => 2
Only materialize the new transaction if it needs it
activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
の修正です。
transaction
内でrequires_new: true
を指定して別のtransaction
を開始した場合に、savepointを使用してのtransactionの管理が行われないバグがあったのを修正しています。
Merge pull request #44958 from fatkodima/fix-db_prepare-seeds
activerecord/lib/active_record/tasks/database_tasks.rb
の修正です。
複数DBの設定がある場合に、db:prepare
task実行時にdb:seed
taskが複数回実行されてしまうバグがあったのを修正しています。
.github/workflows/lint.yml
、
railties/lib/rails/generators/app_base.rb
の修正です。
git.io を使用、参照している箇所があったのを使用しないよう修正しています。git.io はdeprecatedになった為。参考: Git.io deprecation