Rails Daily: Migration Compatibility Push and S3 Upload Change

A stacked set of migration compatibility fixes restores historic schema behavior across adapters, while Active Storage stops setting public-read ACLs on S3 uploads. Open proposals address lazy routes, forgery trusted origins, and JSON dirty tracking.

Duration: PT2M22S

Episode overview

This episode is a short developer briefing from Rails Daily.

It explains recent repository work in plain language.

  • Show: Rails Daily
  • Published: 2026-10-06T06:02:20Z
  • Audio duration: PT2M22S

Transcript excerpt

This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.

Good morning, today is Tuesday, October 6th, 2026, and this is Rails Daily.

The big thread is migration compatibility — making sure decades-old migrations still build the schema they originally built. If you maintain old migrations or run public file uploads, this batch directly affects you.

Four merged pull requests from contributor Yasuo Honda drive that work. PR 58844 adds regression tests for adapter-specific behavior, like storage engine handling on MySQL and timestamp handling on Postgres. On top of that foundation, PR 58845 fixes version 6 migrations on SQLite to honor an explicit column type on…

Separately, Active Storage changes how it uploads to public S3 buckets. Merged in PR 58781, Rails will no longer set the public-read access control on upload. That aligns with Amazon's bucket-owner-enforced default, where access controls are disabled, and avoids failed uploads to hardened buckets.

A few open proposals are worth watching. PR 58947 would make trusted origins actually bypass the forgery origin check, important for sign-in callbacks like Sign in with Apple. PR 58951 would keep routes lazy even if the route set is touched before initializers run. And PR 58950 tackles JSON…

W…

Nearby episodes from Rails Daily

  1. Weekly Recap - Security Hardening, Postgres Reliability, and 8.2 Cleanup
  2. Postgres Reliability and Secure Defaults
  3. SQLite Cache Fix and Test Cleanup
  4. Session and Header Security Hardening
  5. Minimum Ruby Bump Unlocks Query Cache Work
  6. Dynamic Routes Removed, Ruby Floor Rising
  7. Logger Tag Fixes and Active Record Tuning
  8. Dynamic Routes Removed, Query Edge Cases Fixed