Manual Upgrade using fresh install and original database
This guideline will insure you have a stable version of your site installed with the newest version of Magento software. This upgrade procedure does not rely on Connect or FTP.
This is also the recommend procedure for upgrading from Magento CE to Magento EE.
This should be a complete list of items for upgrading the production database, rolling out the new codebase, and transferring DNS resolution to the new Magento instance.
Your pre-install prep-work will save you hours and hours of work after you have done you upgrade. The more methodical you are in your preparation, the smother your upgrade will go.
- Make sure you server is configured properly!
- Set your DNS ttl to 300 or less. Do this now or you make forget later!
- Clear and turn your cache off
- Make sure Apache Timeout is set to 18000
- Set max_execution time on PHP to 0
- Identify and list modules to go to upgraded version
- Diff Core of original version to clean core of same version
- You may not need all you modules brought over and some modules will not be compatible in a newer version. Each one must be checked and tested.
- Make sure to check your Local and Community Folder.
- If you have a local/Mage folder you will need to check if the code is compatible with the version you are upgrading to.
- Identify theme components to transfer
- Diff theme with base or default version of original theme
- Make sure all your theme files are in the correct folders and more importantly make sure you theme is compatible with the version you are upgrading to. It is best to test your upgrade on the default theme, then slowing add in just the theme files you need for your theme. There are layout files that are specific to the newer versions of Magento and it is important that these files are used for you install. A good example is checkout.xml.
- Identify external components that need to function with new version, review on Magento integration options (i.e. does it make sense to make the external app a Magento app or leave it as an external app)
- This also includes API‘s that are running and/or loading Mage out side of Magento. Sometimes it make sense to move these external apps to proper Magento extensions.
- Check that all your Magento indexes are up to date
- Dump old database and restore in new database
- mysqldump -u user -p ‘password’ -h host olddatabase > yourdump.sql
- mysql -u user -p ‘password’ -h host newdatabase < yourdump.sql
- Export Live database to an SQL dump file (db-YY-MM-DD-pre.sql)
- Transfer db-YY-MM-DD-pre.sql to the dedicated database upgrade server and imported into the local MySQL instance
- Navigate to your sites main page to instantiate the upgrade process. For more advanced users: Execute “nohup php index.php > log-YY-MM-DD_1 &”
- Let process run until finished
- Re-index site
- Export Upgraded database to an SQL dump file (db-YY-MM-DD-post.sql)
- Transfer db-YY-MM-DD-post.sql to the production machine and import into the local MySQL instance
- Correct Store Issues (Update so admin can login!)
- Execute necessary scripts
- Enter Admin panel and set the following configuration values:
- Themes and packages set to default
- Refresh cache and indexes
- Turn on “Display out of stock products” System>Configuration>Catalog>Inventory>Stock Options: Display out of Stock Products to “Yes”
- Update CMS Page and Static Blocks
- Set order number higher
- Switch the Apache vhost references to point to the new instance, disable the old instance
- Restart Apache
- Site is now live
If you have additional questions you can email Brent W Peterson firstname.lastname@example.org
— Brent W Peterson 2011/09/09 10:44