This is a summary of my experiences migrating this site from Joomla! 1.5 to 2.5.
When I originally setup this site a couple of years ago, Joomla! 1.5 was the current production version and future versions were still under discussion. Having watched versions 1.6 and 1.7 evolve, now that version 2.5 is production and 1.5 will be end-of-life in April 2012, I thought that it was about time I migrated.
Starting with the official documentation at http://docs.joomla.org/Migrating_from_Joomla_1.5_to_Joomla_2.5 I installed version 1.7 (version 2.5 was still Beta) onto my development environment. There were two things that that needed to be checked: that all of my extensions were available; and that my template was converted.
Two extensions were required: Jumi for Javascript insertion; and NinjaRSS for RSS Syndication. While Jumi was available, NinjaRSS was still ‘coming soon’. As RSS was not a critical issue I decided to leave this for later.
As the site uses a custom template that I based on Beez, I knew that I would have to convert this myself.
Once I had a working version 1.7 environment, I downloaded and installed jUpgrade into my version 1.5 environment. Unfortunately this did not work for me as it hung while initialising and despite some debugging I could not get it to work (which was disappointing as the registration process took 30 minutes). The next option was to use the J2XML / J2XML Importer extension combination, which worked perfectly and within a few minutes all of my content had been converted and loaded into the new version. While J2XML did a good job of converting most things there were a few issues.
As Sections have been replaced by unlimited Categories, J2XML did a quite reasonable job of converting these. However a lot of the settings were no longer appropriate and the structure needed updating anyway. So all of my Categories had to be reviewed and modified to an improved structure.
Menus were not converted (which was not surprising as these are closely linked to Categories). Using the old site as a reference I created all of the Menu Items and linked them to the correct Category.
This left the the template to update. After reading http://docs.joomla.org/Upgrading_a_Joomla_1.5_template_to_Joomla_1.6 and some of the forum posts http://forum.joomla.org/viewtopic.php?p=2671158, I made a copy of the Atomic template.
I started by deleting things that I would not be using, such as the Blueprint framework, then copied my images. Next I updated the templateDetails.xml, copied the <body> of my index.php and copied my CSS into template.css.
Once I had a template with all of my module positions defined I then had to correct all of the CSS references to changed HTML tags and classes. Firefox with the Firebug extension and the W3C Default style sheet for HTML4 (http://www.w3.org/TR/CSS2/sample.html) was helpful with this. At this point it was looking pretty good but there was still a few things to do.
I had not implemented pagination in the old template so I took the opportunity to do this using http://docs.joomla.org/Understanding_Output_Overrides#Pagination_Links_Overrides as a guide.
One thing I noticed was that there was a title of “Sub-categories” appearing on many of the pages. A quick bit of Googling found that this was a Joomla! bug which could be corrected with a language override (http://forum.joomla.org/viewtopic.php?p=2557788) by setting JGLOBAL_SUBCATEGORIES=”” in /language/overrides/en-GB.override.ini.
The only thing left to do was to implement an RSS Syndication feed. A bit of research showed that the native RSS Syndication has been significantly improved in later versions. By enabling the Syndication module, then creating a Category Blog menu entry in an obscure part of the site showing the ten most recent articles, I was then able to add RSS feed options to the link. This was used to create a custom HTML module on the front page to show the feed. The link to the latest news was index.php/about/latest so the feed became index.php/about/latest?format=feed&type=rss.
At this point the migrated site was fully operational in my development environment. However while reviewing my articles and fixing broken links I noticed that all of the articles had been renumbered. While this did not cause any internal problems for my site, anyone who had externally linked to a page would be taken to the wrong article.
The final step was to migrate to version 2.5 (which was now production). Press the button for the automatic update, wait ten minutes, done. Too easy!
Then it was just a matter of backing up the live site (everyone backs up before an upgrade, right?) and uploading the new version.
Overall the biggest hurdles were getting through the often incomplete (and some times wrong) instructions of what was required. Basically if you were able to build a site with version 1.5 then you should have the skills to migrate to the latest version. The major issue is time – never having used version 1.7 before, it took me about 50 hours effort from first investigation to completion.