From jD1.9.1.x on Joomla 2.5 to jD3.2 on Joomla 3.2+
The scene here is upgrading from jDownloads version 18.104.22.168 (jD22.214.171.124) or later running on Joomla! 2.5 to jDownloads 3.2.x (jD3.2.x) running on Joomla! 3.3.6 or higher.
If you are running a version lower than jD 126.96.36.199 then first you should upgrade to jD188.8.131.52 (note jD184.108.40.206 was an important security update).
If you are using jD220.127.116.11 on Joomla! 3.2 or higher then a separate note is available, see How to Upgrade jDownloads Component from jD18.104.22.168 to jD3.2
Most of this article is about using a test site as once that has been done then doing it on the 'live site' should just be restoring a backup from the working version of the test site. Some notes on making a test site are given in an addendum below.
In summary the major steps are:
- ensure you have the latest jD 1.9.1.x version - at time of writing this is 22.214.171.124;
- make a 'live site' backup using say Akeeba, just in case it all goes wrong!
- create and restore to a test site (see addendum);
- prepare test site for migration from Joomla! 2.5.x to Joomla! 3.3.x (or later), do not uninstall jD126.96.36.199;
- take a backup of test site;
- migrate from Joomla! 2.5.x to Joomla! 3.x - this is the most 'nervous' stage;
- take anothe backup of test site;
- update jD188.8.131.52 to jD184.108.40.206;
- take yet another backup of test site;
- enable or update or replace remaining Joomla! 2.5 versions;
- and again take a test site backup
There are several articles available on migrating from Joomla! 2.5 to Jommla! 3.x. One which gives a good overview is Practical Guide for upgrade/mini-migrate an existing Joomla 2.5 site to Joomla 3.x by Leo Lammerink, who is a 'Joomla! Master'. In the more detailed section below the general scheme above is supplemented with a few notes from my own experiencies. In doing the migration I used Akeeba Backup and Restore for all backups, and File Zilla for any FTP transfers of backups.
Allow yourself plenty of time, if you need a break then do another backup. Make notes of what you are doing at each stage
In doing this the first time there was some degree of trial and error, with mistakes on the way. That now qualifies me as a consultant as one British definition of a consultant is "someone who has made more mistakes than you have!". The trick is of course to learn from your mistakes!!
- Make test site ( see addendum) - all of the following is assumed to be on a Test Site.
- Check you have jD1.9.6 or later.
- Using Extension Manager - Manage facility then:
- disable all Components other than the basic Joomla! extensions, that is those that come with the basic Joomla! system, and those you know run on both platforms, that is on both Joomla! 2.5 and Joomla! 3.x - in my case that was Akeeba Backup and the JCE Editor. If you are unsure of what items are included in a 'fresh' Joomla! 3.4 for instance please click on typical Joomla base content.
- similarly disable all Modules and Plugins that are not Joomla! Project or you are not certain they run on both platforms, it is better to err on the side of caution so if in doubt disable;
- where possible update to components, modules and plugins that do work on both platforms. Again it is better to be cautious especially when some plugins and modules run automatically on page loading! Also for any 'relacements I would suggest it is better to evaluate on the final platform than on a platform you will no longer be using.
- Using Extension Manager - Database check that your current database is correct.
- Do NOT uninstall jDownloads, but ensure component, modules and plugins are all disabled.
- Change if possible to a front end template which is known to work on both platforms - if not change to something like Beez 2 and see if site still runs in a basic sense. There is not a problem with the Admin template as the migration from 2.5 to 3.2 automatically switches admin to the isis template
- Make sure you Assign menu pages as appropriate to the new template, something easily forgotten!
- In Extension Manager - Database check you have no errors and if there are use the Fix button (I had two "Database schema version (2.5.14) does not match CMS version (2.5.27)." errors which meant starting again because I did not check! And yes it took quite some time to find this was a problem).
- Use Joomla! Update component to do the actual migration from Joomla 2.5.27 to 3.3.6 - this usually means using the Options in the Updater to select Short Term support before you see an appropriate 'target' such as indicated by a line like: "Update package URL https://github.com/joomla/joomla-cms/releases/download/3.3.6/Joomla_3.3.6-Stable-Update_Package.zip"
- For me the Admin switched fine because it automatically switched the admin template to isis but because my site template did not support Joomla! 3.x then the site page just came up blank! So I switched to Beez 3 to check out a couple of basics thing like seeing an article.
- Then Enable, but do not use, the jDownloads220.127.116.11 (or later) component; leave all other jDownloads modules and plugins Disabled.
- Now use the Extension Manager to Install jDownloads 18.104.22.168, this will actually take jD from 22.214.171.124 to 126.96.36.199. Remember all the categories, files and database options are still in place.
- Make a new menu item of say List All Categories and try it out. Do not be too ambitiuous but go to the next step.
- Take another Backup as things may still foul up! - Whilst it's backing up take time for a coffee or tea, or even a plain glass of water!
- We are now nearly there, just need to update to jD3.2.x series. This is already covered by another article, namely How to Upgrade jDownloads Component from jD188.8.131.52 to jD3.2 so switch to that article to complete this step in the migration.
- Now all that is necessary is the arduous chore of updating the missing components, modules and plugins needed for your site; and also sorting out any template and menu items.
Assumption is that Akeeba back up/restore is being used, and that the test site will be on the same server. Make sure you have enough disk space on your server, not only for the live and test sites but also for several backups. Assume your site is called "www.livesite.com", that is it is located in the public_html directory.
For the first five steps below it is probably worthwhile putting your site 'off line', see System - Global Configuration.
- Make backup of live site. This is our 'get out of jail card' if things go "pear shaped" with our live site.
- Now turn off any SEO in System-Global Congiuration
- Either rename or modify the file .htaccess so that it effectively does nothing (I put # signs in front of various lines to make them like a commen)t. Also disable any component, module or plugin that does SEO or Alias things.
- Take another Backup - Backup2. This is the one that will be used for creating the test site.
- Set SEO and .htaccess back to normal live site conditions.
- Use your favourite FTP program to make copies of the backups onto your PC
- Create a directory called say 'test'. Ultimately the location of your test site will be http://www.livesite.com/test/index.php
- Copy Backup2 to the test directory.
- Make a new Database. On CPanel this is done with MySQL Database Wizard. The new database will need a different prefix, for example jtst. One can either use a new database user or an existing one but in either case the user needs all priveleges and you will need to know the database user name and that users password. These have nothing whatsoever to do with any Joomla user or password, remember it is a MySQLi user and password.
- Copy Akeeba's 'restorer' currently called kickstart.php to directory test. If you are using the pro version you have to rename it to something else.
- In you browser go to http://www.livesite.com/test/kickstart.php (or whatever you renamed kickstart.php). This is all spelt out in Akeeba's documentation.
- During the restoration stage and almost at the last stage you get the opportunity to enter in details of the new database name, user and password; and also the new suffix. In next stage you can set the new test sites live address (http://www.livesite/test), Cookie site (livesite.com - no http or www bits), and cookie path (/test -with no trailing /). Make sure you check the tick box to override the log and tmp file locations, this is easily missed.
- After the Clean Up stage you get button links to the Admin and Front End pages. Try out the Admin first. if that is good then things have basically succeeded. If the front end site just comes up with a blank page or similar it probably means your template is not 'Joomla! 3.x' compatible. Switching to the Beez 3 template for the front end usually give some sort of running front end, thus allowing basic testing whilst you sort out your front end template. You may need to Unassign menu items from another template. If the Admin does not work then you have to resore from an earlier backup and repaet carefully. In one case, which was late at night, I even had to delete everything in the test directory and in the new database before making a fresh start the next morning!
- If you are using Akeeba then do not forget to change the output directory in the Akeeba Configuration to the test site - insert /test in the directory string.
Colin Mercer, October 2014