Last Updated on 2013-07-20.
Basically, this tutorial provides a good way to upgrade, but you have to notice some additional things:
Do not run the update directly on your live system! Better try it on a local test installation. Some images and CSS settings have to be changed manually before.
When running the update on your production system afterwards, make sure only you have access to the web server on port 80. The database update is done automatically when you call a shop webpage after upgrading, and this should only be run once by one user – you. The upgrade can take several minutes, e.g. have a look at console “top” command to see if mysql is on high load, or look at the current processes in phpMyAdmin.
The best way is to stop Apache during the whole upgrading process, and to call index.php via php-cli, as described in the tutorial link above. Only restricting access via .htaccess etc. does not help, as the upgrade process overwrites with default data.
If other users have website access at the upgrade time, the scripts are run multiple and can lead to database errors like “error on rename” or “duplicate entry”.