2025/02/07分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Add
allow_retrytosql.active_recordinstrumentation. - Enable automatically retrying idempotent association queries on connection errors.
- Fix migrating multiple databases with
ActiveRecord::PendingMigrationaction.
Fix ActionCable allowed_request_origin configuration guide typo
rails guideのConfiguring Rails Applicationsの修正です。
config.action_cable.allowed_request_origins configについて説明している箇所内のタイポを修正しています。
Merge pull request #54318 from german/add_db_system_change_command_to_doc
rails guideのThe Rails Command Lineの修正です。
db:system:changeコマンドについての説明を追加しています。
Small tweaks to sql.active_record guide
rails guideのActive Support Instrumentationの修正です。
sql.active_record hookについての説明について、payloadのkeyの順番を修正、statement_nameはPostgreSQLだけ存在する旨説明を追加、async keyを追加、を行なっています。
Add allow_retry to sql.active_record
activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb、
activerecord/lib/active_record/connection_adapters/abstract_adapter.rbの修正です。
sql.active_record hookのpayloadに、自動retryの対象かどうかを判別するためのallow_retryを追加しています。
Enable statement-cached queries to be retryable
Active Recordの修正です。
冪等なassociationを取得するSQLがconnection error等でfailした場合、自動でリトライするよう修正しています。
Fix migrating multiple DBs with pending migration action
Active Recordの修正です。
ActiveRecord::PendingMigration actionがprimary DBにしかmigrationを実行しないようになっていたのを、複数DBの設定がある場合、すべてのDBでmigrationが実行されるよう修正しています。
activerecord/CHANGELOG.mdの修正です。
allow_retryをsql.activerecord hookに追加した対応のエントリーの言い回しを修正しています。
Enable query-cacheable queries to be retryable
activerecord/lib/active_record/connection_adapters/abstract/query_cache.rbの修正です。
cache可能な冪等なSQLがconnection error等でfailした場合、自動でリトライするよう修正しています。
Fix SqlLiterals overriding query's retryable value
activerecord/lib/arel/visitors/to_sql.rbの修正です。
リトライ可能でないSQLがリトライ可能である、と判断されてしまう事があるバグがあったのを修正しています。
Merge pull request #54460 from ryush00/cache-pool-timeout-and-tests
activesupport/lib/active_support/cache/mem_cache_store.rbの修正です。
Handle connection pool errors in Redis and Memcached storesでconnection pool関係のエラーが発生した場合処理を継続するよう対応したのですが、ConnectionPool::TimeoutErrorについては対応が出来ていなかった為、ConnectionPool::TimeoutErrorについても他のconnection pool関係のエラーと同様に扱うよう修正しています。