Before attempting to upgrade an existing application, you should be sure you have a good reason to upgrade.
You need to balance several factors: the need for new features, the increasing difficulty of finding support for old code, and your available time and skills, to name a few.
$ rails app:update identical config/exist config conflict config/Overwrite /myapp/config/routes.rb?
(enter "h" for help) [Ynaqdh] force config/conflict config/Overwrite /myapp/config/application.rb?
In Rails 4.2, an Active Record model inherits from in Active Record and Active Model, then the entire callback chain is halted.
Constants in deeper places only executed at runtime, like regular method bodies, are also fine because the file defining them will have been eager loaded while booting.
For the vast majority of applications this change needs no action.
In the case of a Rails upgrade, that will mean every single piece of functionality in the application. Major and Minor versions are allowed to make changes to the public API, so this may cause errors in your application.
Do yourself a favor and make sure your test coverage is good you start an upgrade. Patch versions only include bug fixes, and don't change any public API. Then run the Update task mentioned below to update configuration files, then run your tests.
When you are ready, you can opt into the new behavior and remove the deprecation warning by adding the following configuration to your class instead. Autoloading is now disabled after booting in the production environment by default.