Pages

Sunday, June 30, 2013

Upgrading Magento Enterprise

Unfortunately there is no magic button you can push to upgrade your version of Enterprise.

If you have enterprise, you’ll be paying for support. I recommend you contact Magento Support before going any further. There’s no documentation on how to do it yourself. Also, if you’re not a System Admin or a Developer, turn back now.

It shouldn’t need to be said, but here I go anyway: Do this on a development server or at least a staging environment first. Do not just upgrade your live site without doing it elsewhere first. Also, for the record this post will be vague. There is a lot of assumed knowledge within. I use examples from an Apache server as I imagine many people will be using Apache. I know I do.

Log in to your enterprise account on www.magentocommerce.com and click on “My Account”. Click “Downloads”, and the latest versions of Magento Enterprise will be listed on the right, among other things such as changelog files. Download your desired version.

Essentially there are only a few key steps to the process:

1) Back up your database.

2) Turn off Cron! You don’t want things re-indexing while Magento modifies database tables.

3) Back up all files from your Magento working directory, and move the files to a different folder (eg: rsync -aPzx var/www/magento var/www/magento_backup).

4) Extract the files from the downloaded version to var/www/magento

5) Make a list of all custom content that needs to be installed on the new version. My list of things generally includes:

    everything in app/code/local,
    files in app/etc/modules,
    app/etc/local.xml
    custom themes & skins in app/design/frontend/enterprise and app/design/adminhtml/default/default, and
    a lot of things in the media, js & skin folders.

If you’ve been a good little developer and haven’t edited any core files, you’ll be patting yourself on the back at this very moment. If not, you’re out of luck, really. Go back and do things properly. Don’t copy across any core files you’ve edited as you’re likely to break lots of things or undo new bug fixes.

6) Copy the things in your list from var/www/magento_backup to var/www/magento

7) Load the site in a browser window. This could take a while. There are a number of things that can go wrong at this point. For example:

    You may get some fatal errors. If this is the case, you’ll need to track them back to their source and find out why they are being thrown. Did you forget to migrate some files? Are you overriding core classes that have now changed? Are you using functionality that has been deprecated? Have you reached this step previously and now cached data is breaking your shit? Get in there and have a look.
    Your mysql server may get stuck in an infinite loop. With the new version will come a lot of new setup files that modify the database. They could be adding new tables, new columns, new keys or simply modifying elements. For instance, if Magento tries to add UNIQUE to an existing field that contains duplicate values, it will fail and repeatedly retry.

8) Once the site loads, and loads with no fatal errors, TEST! Test all of your modules, place test orders, just go nuts! This is by far the most important step and cannot be taken seriously enough.

Finally, when you’re happy with the level that you’re at:

9) Do it all again for your live site, or if this is a staging server, make it live for all to see.

No comments:

Post a Comment