Main Menu

How To update Magento

This article applies to magento version 1.7.x .

Let me start off by saying that 90% of end users should not update their own stores. If your store needs to be updated you should inform your web designer. That being said lets look at a few key items before you upgrade your site.


NEVER upgrade a production site!!!!!!! ALWAYS use a test environment. If the upgrade goes well, good. If it goes badly, you have only messed up a developement site, and now you can see why it messed up. Best of all the customer's store suffered no downtime.  For info on how to setup a development site refer to the "how to setup a development webserver on your Computer." article.

Do you have 2 backups, outside of magento? The backup feature in magento is nice, but if your backup files are overwritten in the upgrade you are sol. So make sure you have downloaded valid useable backups.

Make sure all your installed modules are up-to-date ie. the latest version.

Check all your modules against the new core version before doing anything. Sometimes it helps to use a spreadsheet to keep track modules that have been installed. if a particular module does not work with the version you are upgrading to then you need to stop, and see if there is a solution. If not inform the customer of the possibility of losing module functionality.

Gather all your modified files. you are following magento "best practices" and not editing the core code, right? And you are keeping a changelog of all your modifications, right? Seriously gather your various local.xml, local.css, and any other files that have been modified, this will make getting your store back in order alot less time consuming.

Choose your update method.

Magento connect ----good option for sites that are some what up-to-date -- bad option for sites that are far behind in updates, especially when using modules that modify the file structure.

1. login to magento as a user with full administrative access, using the update URL http://<YOUR_DEVELOPMENT_SERVER>/downloader

2. use the web interface to grab a quick backup. its free and i say you cannot have enough backups!

3. click check for updates

4. once the check has been completed you should see a list. It was probably already there, but now some items should be highlighted in yellow. select update for each module that needs to be updated. having 10yrs hosting and developing websites experience under my belt, take a word of advice. do not update everything in one shot. do your non-core modules first, do a quick site check. Then update your core modules 1 at a time. it may seem like this defeats the purpose of being able to check update everything at one time, and it does. however i have seen more problems caused by updating "everythign at once", from windows, to websites, to servers, than probably any other factor. If a core module requires another core module to be updated you will be notified when you click commit changes.

5. site check everything, and re-apply any modifications that have been "lost" during the upgrade.

6 site check everything check cms pages, policy pages, test the contact forms, run a test order for each payment type and shipping type.

7. go check the production site, now look at the updated development site. do they look identical on the front end? they should.

8 discuss any problems with your store's owner. if there are no problems, contact the owner to setup a time to update the live site.

9. now the fun part. updating the live site. make more backups, remeber you cannot have enough backups.

10. get your development environment's public_html folder ready to upload

11. immediatley after making the backups put the site in maintenance mode to prevent any further orders/account sign-ups during the update.

12. login to the production magento instance as a user with full administrative access, using the update URL http://<YOUR_SERVER>/downloader and update the modules that need to be updated just as you did previously on the development server.

13. after the update(s) finishe(s). upload your development environment's compressed public_html folder and extract it to the production servers public_html folder.

14. uploading everything from the dev server will save you some time, time that you need to check the site.

15. check the site. is checkout working for all payment types? is shipping calculation working? how about banner rotators?

16. go to sleep, because9 out of 10 times sites are updated in the middle of the night, because downtime is a dirty word not to see the light of day



manual update ---- best all around method if the update is a significant one, you do remember that you are using magento right?