If you have a Joomla 3 installation and are upgrading to the latest version of Joomla, it does not involve any major database changes, so it is considered an "upgrade" and not a migration. 

There are a few things that you should be aware of before you do any upgrade and a few steps you should take to assure that it goes as smoothly as possible.

Potential for problems

Upgrading the site can cause issues of which you should be aware. There is the potential of:

  • 3rd-party extensions, plug-ins and/or components will not work with the new upgrade
  • writing over template files
  • writing over any edits made to the Joomla core files
  • styling issues
  • writing over changes to the index.php for your template
  • writing over templateDetails.php and losing custom positions
  • conflicts with 3rd party templates
  • plugins that have conflicts
  • stalled upgrades due to file permission problems

Steps to avoid problems

Some of these issues can be avoided if you consider the following:

  • create a copy of the template and rename it and only make changes only to the copy
  • always use Template Overrides when making changes to the core files
  • create custom stylesheets. These custom stylesheets will not be overwritten with upgrades
  • keep track of any custom edits that you made to the index.php, templateDetails.xml or template overrides, so that you can duplicate them in the new template if necessary

If you are the web developer and hand over a Joomla site for your client to edit, instruct them not to do the Joomla upgrades unless they are aware of all the precautionary steps.

3rd Party Extensions

When you are going from one 3+ release of Joomla to another, chances are the extensions that you have installed will still function correctly. Be aware that there is still a potential for conflicts or problems. Know which 3rd party extensions you have installed and who the provider is, just in case you need to solve an upgrade problem.

Verify your hosting environment meets the minimum requirements for Joomla 3+

The minimum technical requirements for Joomla can change between releases. Always be sure that your hosting service provides the minimum for PHP, MySQL and Apache.

Visit the following link for these requirements: http://www.joomla.org/technical-requirements.html

Consider running the upgrade in a development environment

Even minor upgrades can cause problems with your site. It can take some time to work through the issues. If you have a live site, where visitors are coming and going, you should consider copying the folders, files and database and database to a local computer with XAMPP, WAMP or LAMP available or copy the site to a sub-directory on your host just to be sure all the bugs and styling changes have been fixed before going live.

Upgrading a duplicate site can be a problem if your site has a forum or other contributions being made when it is live. The database on the copied site won't have the new posts or other content changes. In this case, you may consider taking your site off-line during slow hours and upgrading the live site. It may be an inconvenience to you or your web developer, but replacing the lost data could prove to be more of a bother.

Steps for upgrading your Joomla Site

Step 1: Preparing your site for upgrade

Turn on error reporting in Global Configuration under the Server tab. This allows you to see any errors that might arise after you run the upgrade process.

Clear out all cache files under System -> Clear Cache

Turn off caching in Global Configuration under the System tab.

Disable the System - cache plugin under Plugin Manager.

Step 2: Backup the site files

Backup all of your site files. You can use the Akeeba backup extension or do it manually.

Doing it manually means that you go into the files on the host and create a .zip file of all of the site folders and files and download the .zip file to your own computer. If your hosting company uses cPanel, these steps can be easy. Not all hosting companies make site backup a simple task. Also, keep in mind the a Joomla installation has many, many files and downloading the entire site can take a great deal of time if it is not in zipped format.

Do not skip the step of backing up your site. You will be sorry. You want to be able to quickly restore your site if the upgrade doesn't go well or refer to the old files to duplicate edits. Do not expect your hosting company to have a backup of your files or database.

Step 3: Back up the database

Backup your database. This is also a simple task if your hosting company uses cPanel. With many cut-rate hosting companies, this can be a laborious task and the database backup may not be complete.

Step 4: Run the upgrade on a copy of your site

If you are choosing to run the Joomla upgrade on a copy of your site in the same hosting environment, DO NOT USE THE SAME DATABASE. Be sure the configuration.php file points to the duplicate database. The upgrade process makes changes to the database.

How to copy a database

The ability to copy a database depends on your hosting environment. If you have access to phpmyadmin, you can export the current database. Create a new blank database through your hosting company. Go back into phpmyadmin and import the data file from the original database. Go into the copy of your site files, open configuration.php file in a text editor, change the line: public $db = "   " to the name of the new database. If the new database has a different user name and password, you will need to change those lines as well. Test the duplicate site to be sure the data is there and the functionality.

the imported database will have the same table prefix and table structure of the original.

Step 6: Run the Joomla update

Joomla's Administrative Interface has a button that says Update Now that shows up whenever there is an available update. This button will not always work, it depends on your hosting environment.

You can also download the latest upgrade zip file from: http://www.joomla.org/download.html. You can then upload this upgrade zip file through the Extension Manager: Install screen. Go to the Upload Package file tab.

Step 7: Update all of your 3rd Party Extensions

If you have 3rd party Extensions, you should upgrade those as well, if necessary. On the incremental upgrades, for example 3.2.+ to 3.3.+, it may not be necessary.

Step 8: Test the site

Check that the styling looks the same, the content is there. Check the functionality of the menus. There may be some restyling that is necessary.

You may need to edit or replace your template's index.php and templateDetails file to match any custom changes that had been made previously.