2025/09/26分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Optimize schema dumping to prevent duplicate file generation.
- Support virtual (not persisted) generated columns on PostgreSQL 18+
Merge pull request #55713 from Shopify/optimize-schema-dump
activerecord/lib/active_record/tasks/database_tasks.rbの修正です。
ActiveRecord::Tasks::DatabaseTasks.dump_allが同じschemaが複数回dumpしてしまっていたのを、生成済みのschemaについてはdumpを行わないよう修正しています。
Merge pull request #55496 from TobiasBales/action_on_open_redirect
Action Pack、railtiesの修正です。
オープンリダイレクトを行おうとした際の挙動を、config(config.action_controller.action_on_open_redirect)で指定出来るよう修正しています。同じ用途のconfig.action_controller.raise_on_open_redirectsというconfigがあるのですが、こちらは挙動にraiseをするかどうかしか指定出来ないようになっていました。新しく追加されたconfigは、ログ出力(:log)、Active Support notificationに出力(:notify)、及び、例外を発生(:raise)を指定出来るようになっています。合わせて、config.action_controller.raise_on_open_redirectsはdeprecatedにしています。
Setting max_connections to nil means no limit
activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb、
activerecord/lib/active_record/database_configurations/hash_config.rbの修正です。
database configurationのmax_connectionsにnilを指定した場合、上限の指定無し、として扱うよう修正しています。
Move implementation fully into #index_serializers
activejob/lib/active_job/serializers.rb、
activejob/lib/active_job/serializers/object_serializer.rbの修正です。
ObjectSerializer#klassメソッドを削除して、custom serializerに#klassメソッドが定義されていなかのチェックをシンプルに行えるようリファクタリングしています。
Support virtual (not persisted) generated columns on PostgreSQL 18+
Active Recordの修正です。
PostgreSQL 18で追加されたvirtual generated columnsをサポートするよう修正しています。stored: trueが明示的に指定されていない場合、デフォルトでvirtual generated columnsが使用されるようになっています。
create_table :users do |t| t.string :name t.virtual :lower_name, type: :string, as: "LOWER(name)", stored: false t.virtual :name_length, type: :integer, as: "LENGTH(name)" end
参考:PostgreSQL: Documentation: 18: E.1. Release 18
Merge pull request #52297 from dennispaagman/verbose_redirect_logs
Action Pack、railtiesの修正です。
redirectが実行された場合に、どこから処理が呼ばれたかを記録するための、action_dispatch.verbose_redirect_logsを追加しています。この設定がtrueの場合、active_record.verbose_query_logsやactive_job.verbose_enqueue_logsと同様に、redirectに関するログが出力されるようになっています。
Redirected to http://localhost:3000/posts/1 ↳ app/controllers/posts_controller.rb:32:in `block (2 levels) in create'