Upgrade Rails to a new version
When upgrading our apps between Rails major and minor versions, follow the official Rails guides.
We are trying to standardise our Rails config files. The guidelines for these are as follows:
load_defaultsis used, it should be top of the config
- Config options should be alphabetised
- Group together options that relate to the same option
config.assets.prefixshould be grouped together
- Remove any default/unnecessary comments
Gotchas for upgrading to Rails 5.0
By default Rails 5 disables autoloading in production and uses eager load, this blog post explains further.
The effect this can have is that classes that need the
autoload_paths altered -
for instance at the root of
lib - will no longer work in production, but will
still load in development (this has already caused a production issue).
The solution is append to
eager_load_paths rather than
will ensure the classes are loaded in both production and development. See
Publishing API Example.
ActionCable and Puma configs
We don’t use these in production and they are likely to cause conflicts, so you should remove them.
Gotchas for upgrading to Rails 5.1
Schema dumper changes
The schema dumper has been refactored in Rails 5.1 so the first migration after upgrading
will generate a lot of differences in
Notably whitespace and
using :btree index modifiers.
See this commit
and also this commit for details of the changes.
As part of the upgrade, regenerating the schema with
rake db:migrate and including the updated
db/schema.rb file will mean
the next migration doesn’t generate this noise.