Every major version of Rails brings dozens of new features, increased security, and better performance. But depending on your test coverage, developer resources, and time, it's often difficult to prioritize an upgrade. When you're able to update your Rails app, you want it to be as speedy and bug-free as possible.
To help you out, we've rounded up some of the best checklists, tools, tutorials, and articles on upgrading to different versions of Rails. Some are specific to versions 4.x or 5.x, and some will be useful for any upgrade.
Check them out below, and if we missed your favorite article or too, leave a comment below with the link. We'd be happy to include it.
Upgrading to any Version
The Rails official release guides are, of course, the first place you should begin to research upgrading your Rails app. With each release of the newest version of Rails, a new upgrade guide is also published. Upgrade guides are available from Rails 3.0 to 3.1, all the way up to Rails 5.0 to 5.1. These guides from the official Rails team are helpful for covering the basic changes in each version, and for providing high level tips on common issues.
This simple Rails upgrade checklist is one of the most helpful resources for anyone needing to update a Rails app. It’s not incredibly in-depth, but provides a rough outline of where to start and what steps to take depending on what version of Rails you’re on. Currently, this checklist is only updated to Rails 4. If you’re interested in submitting pull requests to update the list, you can do that here.
It’s easy to find documentation on what Rails has changed with each release. It’s harder to find specifics on what you need to be changing in your own Rails app. RailsDiff outlines the code changes necessary for each Rails update, from 2.3.6 all the way up to 5.1.1. The site gives a visual, line by line demonstration of configuration changes you’ll make in your app.
Of course, depending on the Gems you’re using, there will be additional changes you’ll need to make and test in your Rails application. But for someone executing their first upgrade, or if you have no idea where to begin, RailsDiff is an incredibly helpful tool.
Okay, it’s no secret that one of the first things you do when running into an unexpected error is check Stack Overflow. And while you can definitely ask questions about any issues you discover during your Rails upgrade experience, there are also informative answers ready to be found. If you happen to be upgrading from 4.2.6 to Rails 5.0, there’s a full discussion on that.
Just like Stack Overflow, Reddit is a common source for answers to web development issues you’re stumped on. Reddit has an entire community dedicated to Rails, where you’re able to ask technical and career-based questions – including issues you come across in your Rails update. Will your answer be delivered with a snarky comment? Maybe. But you’ll get your answer and can get your update completed either way.
Upgrading to Rails 5.x
Running on Rails 4.x? Way to go, you’re staying on top of your updates. It’s easy to let a Rails app get behind while focusing on new features. If you’re planning your upgrade to Rails 5 (here’s some reasons we think you should!) then these links will be helpful.
This article specifically references using RVM to manage Rails versions. You can adapt the principles for chruby or rbenv if that's your preference, or you can follow along exactly for Ruby Version Manager.
Need to know if your key gems are ready for an upgrade to Rails 4 or 5? This site tells you exactly that. See what gems will cause conflicts and which ones are ready to upgrade with a quick search. If a gem you’re using isn’t ready for an upgrade, consider seeing if they're actively reviewing pull requests. It may be a quicker fix to contribute to the Gem than find a new solution.
To stay up to date on security fixes, updates, and outdated dependencies, you can use a tool like VersionEye. This notification system surveys your Git repository and informs you when there are changes you should know about.
Upgrading to Rails 4.x
There’s no better time than now to start planning your catch-up process. Even if you’re a few versions behind, upgrades are an iterative process and most easily done one version at a time. For apps running on Rails 3.x or below, here are some helpful tips and guides for upgrading to Rails 4.x.
I came across this guide mentioned in several conversations about Rails 4 upgrades on Stack Overflow. While there are tons of free resources online, at just $10, this eBook may be worth investing in. It’s helpful to have all of your resources in one place when you need to quickly get a Rails update out the door. This guide includes 32 chapters on various Rails 4 features, along with a detailed checklist for upgrading.
For visual learners, RailsCast is the perfect place to see your issues resolved in real time. If you're upgrading to Rails 4.x, RailCast has put together a screencast displaying the process for updating. The video takes you through the different spots where key changes will occur, and you can follow along in real time.
Justin lays out some (nearly) foolproof tips for upgrading a Rails app to version 4.2. This guide briefly covers testing, Rails gem updates, and more. It doesn’t dig into the nitty-gritty details, but is a good high level view of the best strategy for upgrading.
If you’re strategizing an upgrade for a large-scale app, this article will give you insight into how one team did it – without having a separate feature branch. This covers the makeup of the development team, how strategy played a part in the update, and the technical changes that were made along the way.
If your development team isn’t able to prioritize an update, this article also helps explain resource allocation and how features and technical debt were balanced. While the update progressed slowly over the course of 20 months, it was completed and the app was improved because of it.
In a perfect world, updates would happen seamlessly with each new release as part of a healthy Rails maintenance plan. But balancing updates with feature releases and budgeting for the work make it easy to delay an upgrade for months or even years.
If you're considering outsourcing your Rails app upgrade so you can focus on your customers, or if you need a guiding hand for updating a large or very outdated app, click below to schedule a call.
We'd love to to talk with you about the lessons we've learned from upgrading Rails apps, and find out if our expertise can benefit your business.