I see very little existing posts ANYWHERE about best practices for managing upgrades so I'm hoping this helps me and others.
I have 2 Magento Environments:
- Production/Live: Running 1.7.0.0
- Development: Copy of Production which I have on a separate clone of the production server.
I wish to upgrade my production site to 1.9.2.0 so this is what I've done so far.
Upgrade development instance: I've followed Magento best practices for conducting an upgrade as per here http://devdocs.magento.com/guides/m1x/install/installing_upgrade_details.html
As part of the development upgrade I'm tracking all changes on dev via git so I have full file version history on dev now.
At this point I'm now happy that Dev is stable and I'm ready to upgrade production.
Here's the point I'm stuck on. What I've typically seen on any posts/tutorials related to this is that I should rinse and repeat the steps I've taken on dev again on production. Well that would be fine if it hadn't taken me a week to update the dev environment! If I need to go through the same process again in production it will involve a lot of downtime that I can't afford.
So what I was thinking of doing was the following:
- Backup live - (filesystem and DB)
- Move a copy of the dev file system over to production (separate web root)
- Hook up a copy of the live DB to the dev codebase on production
- Load live url - I'm hoping this will upgrade the production DB to 1.9.2.0
- Copy /media from backup of live
- Tweak a few settings in Admin that I would have previously setup on dev
Does anyone foresee any issues with this approach? It will mean not having to manually tweak the live codebase to match the steps taken on dev which will dramatically shorten the downtime required for the switchover.
Any thoughts on this greatly appreciated.
As part of my tasks on dev I maintained a changelog as there were quite a lot of small tweaks required to the source of my theme to ensure it worked correctly with 1.9.2.0.