Upgrade best practices
I have found that the following steps make upgrading a less painful process:
When you're maintaining your site:
0. Use templates whereever possible. Be aware of the extra_datafiles and extra_definitions directories too.
1. Every time you customize a core file, copy the original file to <filename>.orig. That way you can easily find all the customizations you need to apply on an upgrade.
2. Every time you apply a mod, keep a copy of the list of the new files you had to install, and use the step above for modifications to existing files (other than templates).
3. As you change files, make notes in a change log so you can see what has changed at a glance.
4. Maintain a pristine copy of the current release, so you have a known good baseline to compare against if your changes go bad.
When you're ready to upgrade:
0. Create a pristine read-only copy of the new release. You will use this when comparing files,
so you have a known baseline.
1. start with the full release, and apply your "custom" template directories:
2. Copy individual files from maintaining step 2 above.
3. Look at the release changelog in the docs directory. Go through the files one by one and see if you've changed them yourself by looking at your old release's ".orig" files, your templates and your personal change log. If you have, apply your changes - compare your old copy, the previous release's copy and the current release's copy of the file to determine what changes are required.
This is not as bad as it sounds. For instance, in 1.3.6, there were over 50 changes in the admin folder which probably didn't require any merging at all for you since you haven't changed them.
4. Rename your admin folder back to "admin." Back up your database, and go to
http://<yoursite>/zc_install to run the upgrade. Name the admin folder back
to its secret name and start testing.
5. Create a new change log for this version, and go back to the "maintenance" procedure above. Keep an eye on the support threads for any contribs you use to see if there are changes for this release.
This works well for me (my 1.3.6 upgrade was less than three hours) but I would be interested in hearing what other Zenners consider to be upgrade (and maintenance) best practices.
Scott C Wilson, That Software Guy, Plugin Moderator
Contributions: Quantity Discounts, Better Together, SMS on Sale, Gift Wrap at Checkout, and more.