<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/rails-7-2-to-8-1-upgrade-what-actually-breaks-and-how-to-fix-it-zwrjygtho" -->

---
title: Rails 7.2 to 8.1 Upgrade: What Actually Breaks and How...
description: A practical guide to upgrading Rails from 7.2 to 8.1, covering every breaking change and how to fix it. Key breaking changes include the enum keyword argument...
canonical: https://daily.dev/posts/rails-7-2-to-8-1-upgrade-what-actually-breaks-and-how-to-fix-it-zwrjygtho
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Rails 7.2 to 8.1 Upgrade: What Actually Breaks and How to Fix It | daily.dev
og:description: A practical guide to upgrading Rails from 7.2 to 8.1, covering every breaking change and how to fix it. Key breaking changes include the enum keyword argument...
og:url: https://daily.dev/posts/rails-7-2-to-8-1-upgrade-what-actually-breaks-and-how-to-fix-it-zwrjygtho
og:image: https://api.daily.dev/og/posts/zwrjYgTHO.png
og:image:alt: Rails 7.2 to 8.1 Upgrade: What Actually Breaks and How to Fix It
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Rails 7.2 to 8.1 Upgrade: What Actually Breaks and How to Fix It

**[Ruby Flow](https://daily.dev/sources/rubyflow)** · 9 min read · 0 upvotes · 0 comments

## Summary

A practical guide to upgrading Rails from 7.2 to 8.1, covering every breaking change and how to fix it. Key breaking changes include the enum keyword argument syntax removal (now requires positional syntax), to_time timezone behavior changes, schema.rb column reordering, and leading bracket parameter name parsing. New features covered include the Solid trifecta (Solid Queue, Cache, Cable) as Redis replacements, params.expect for stricter parameter handling, Propshaft as the new default asset pipeline, and the authentication generator. The recommended upgrade strategy uses a dual-boot approach with the next_rails gem on main (not a branch), progressing through preparation, dual boot, cutover, default migration, and optional infrastructure migration phases.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://piechowski.io/post/rails-7-to-8-upgrade-what-actually-breaks/>

## Similar posts on daily.dev

- [Upgrading from Rails 7.2 to Rails 8 - The Latest and Greatest](https://daily.dev/posts/upgrading-from-rails-7-2-to-rails-8---the-latest-and-greatest-llm9qhuca) · Saeloun · 0 upvotes · 0 comments
- [Upgrade Rails From 8.0 to 8.1 - FastRuby.io](https://daily.dev/posts/upgrade-rails-from-8-0-to-8-1---fastruby-io-oiayukzim) · RUBYLAND · 0 upvotes · 0 comments
- [Upgrading from Rails 6.1 to Rails 7 - The Modern Stack](https://daily.dev/posts/upgrading-from-rails-6-1-to-rails-7---the-modern-stack-sj9lfpo3i) · Saeloun · 0 upvotes · 0 comments

---

Tags: [#ruby](https://daily.dev/tags/ruby), [#rails](https://daily.dev/tags/rails)

[View this post on daily.dev](https://daily.dev/posts/rails-7-2-to-8-1-upgrade-what-actually-breaks-and-how-to-fix-it-zwrjygtho)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Rails 7.2 to 8.1 Upgrade: What Actually Breaks and How to Fix It","url":"https://daily.dev/posts/rails-7-2-to-8-1-upgrade-what-actually-breaks-and-how-to-fix-it-zwrjygtho","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/rails-7-2-to-8-1-upgrade-what-actually-breaks-and-how-to-fix-it-zwrjygtho"},"datePublished":"2026-03-24T09:46:32.915Z","dateModified":"2026-03-24T09:47:26.322Z","description":"A practical guide to upgrading Rails from 7.2 to 8.1, covering every breaking change and how to fix it. Key breaking changes include the enum keyword argument...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fc277e464a9ce92d90512266a8952dc1?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fc277e464a9ce92d90512266a8952dc1?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Ruby Flow","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Ruby Flow","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/a21aaa8bcbbf448193a016895c90a0e1","url":"https://daily.dev/sources/rubyflow"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/rails-7-2-to-8-1-upgrade-what-actually-breaks-and-how-to-fix-it-zwrjygtho","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ruby,rails","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Ruby Flow","item":"https://daily.dev/sources/rubyflow"},{"@type":"ListItem","position":3,"name":"Rails 7.2 to 8.1 Upgrade: What Actually Breaks and How to Fix It"}]}
```

