$ cat rails/week/2026-10-05.log
the week in review · Oct 5 – Oct 11, 2026
Postgres adapter gains maintenance_database option
By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology
Rails also added adapter-specific migration regression coverage and moved Action Pack and Action Mailer docs from RDoc to Markdown.
Add maintenance_database option to the PostgreSQL adapter rails/rails
db:create, db:drop and db:purge connect to the postgres database by default, which managed services such as DigitalOcean do not provide: it offers only defaultdb and rejects connections to template1 and the postgres database. The new option lets you point those tasks at a database that actually exists on your provider.
Add maintenance_database option to the PostgreSQL adapter rails/rails
Configuration lives on the adapter rather than in a rake task override, so it applies to every invocation of those three tasks. Worth setting in staging and production configs if you deploy against a provider that hides the maintenance database.
Add regression tests for adapter-specific migration compatibility rails/rails
The new tests pin the schema that old migrations still produce on their original Rails version, adapter by adapter. A Migration[5.1] create_table still emits ENGINE=InnoDB on MySQL, and a Migration[6.1] t.datetime still behaves as it did, so upgrades that silently shift legacy schema now fail CI instead of production.
Fix V5_1 change_column to honor table_name_prefix rails/rails
Compatibility::V5_1#change_column on PostgreSQL applied :default, :null and :comment through the connection directly, skipping the proper_table_name call Migration#method_missing normally applies. Apps using table_name_prefix or table_name_suffix while replaying 5.1-era migrations were hitting the wrong table name.
Store query constraints in `SchemaContext` rails/rails
Resolved query constraint lists are now computed when Active Record loads a model schema, with model accessors delegating to the schema context. It continues the Ractor-readiness work from earlier in the period, where the proxy pool's schema cache was rebuilt on a bound schema reflection.
Fix `to_markdown` code spans broken by tables and adjacent code rails/rails
to_markdown wrote the text of <code> and <pre> elements unescaped and leaned on the code span delimiter to stop renderers parsing it as Markdown, which broke whenever a table or adjacent code sat next to the span. Action Text exports of stored rich text containing code are the affected path.
README: sizing guidance for message_retention (#95) rails/solid_cable
The solid_cable README now states what message_retention has to cover: the slowest subscriber's polling interval plus margin for a reconnecting listener. The default costs real rows, since 60 messages per second under 1.day retention keeps roughly 5 million rows. The lemans tooling also shipped a 1.5.1 bump with new report and clobber options alongside.
[ci skip] Fix wrong job name in config.active_record.queues.destroy docs rails/rails
The configuring guide said purge jobs go to the default queue when config.active_record.queues.destroy is nil; the option actually configures the destroy queue. A docs sweep this period also fixed an incorrect route in the Generators guide and completed the Action Pack and Action Mailer move to Markdown.
$ ls rails/week/ # the briefings behind this review
Keep up with Rails in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.
Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.