Why upgrade
New versions are faster, add features and keep receiving security fixes. Staying many versions behind makes each later upgrade harder and more expensive.
The migration steps
- Review installed apps and custom modules
- Upgrade a copy of the database version by version
- Port custom modules to the new version
- Test key flows with real users
- Freeze changes, migrate the live database and go live
Custom modules are the main work
Standard data is moved by migration scripts. Custom modules need code changes for each version, so remove what you no longer use before upgrading.
Avoiding downtime
Do test runs first, measure how long the live migration takes, and plan it for a weekend. Keep the old database read-only as a backup.