2.2’s upgrade script is the neatest approach I’ve seen yet. The process runs through 8 upgrade files in a sequence, freezing on error. This enables the admin to jump into the script, edit, and try again, without any further issues from nth-running the script.

But as usual, there are some bugs that you’ll need to patch:

Bug:
Viewing an order in the admin panel when SSL is enabled causes the following error: [Exception… “The URI scheme corresponds to an unknown protocol handler” nsresult: “0x804b0012 (NS_ERROR_UNKNOWN_PROTOCOL)”

Fix:
admin/controller/sale/order.php ~ 850
$data[‘store_url’] = $this->request->server[‘HTTPS’] ? preg_replace(“/^http:\/\//”, “https://”, $order_info[‘store_url’]) : $order_info[‘store_url’];

Bug:
Warning: imagecreatetruecolor(): Invalid image dimensions in /html/store/system/library/image.php on line 105

Fix:
System, Users, User Groups, Administrator: grant permission to access and modify the theme. Extensions, Themes, click edit, then save.

Bug:
Mixed content

Fix:
Grab the patch url.php file github: https://raw.githubusercontent.com/opencart/opencart/master/upload/system/library/url.php

Bug:
Reset password doesn’t work

Fix:
Copy the fix from https://github.com/opencart/opencart/commit/02ec8a6153a81fef1945d1cc68a1f514cad387cb