Upgrading Joomla from 1.0.x to 1.5.x to 1.6.x
There comes a time when you need to bite the bullet and upgrade your site from the old to the new.
There comes a time when you need to bite the bullet and upgrade your site from the old to the new. Not only are you leaving yourself open to security vulnerabilities as older versions are no longer supported so new security holes found are left open, but future work will also be more complex as extensions are no longer being made for your sites outdated framework.
This can only spell disaster, maybe not in the immediate future (hopefully never), but you're doing yourself and your sites users a disservice by leaving it outdated and vulnerable. It's also a perfect time to give the site a facelift, but that's fuel for another post.
Of course this is easier said than done, particularly if you've let your site age quite a bit. Fortunately for the most part, the upgrade process for Joomla is relatively straight forward, the downside though is any third party or custom extensions that your site has will not gracefully be moved over in the upgrade process.
So if you have a basic, content only site, you're in luck. If not, some planning needs to happen to make the transition as smooth and painless as possible.
There's no path at this stage (and nothing has been announced) to migrate directly from 1.0.x to 1.6.x, so this article will cover both migrating from 1.0.x to 1.5.x, then from 1.5.x to 1.6.x.
Migrating from 1.0.x to 1.5.x
This step is the easiest of the whole process, and is well documented on the Joomla wiki http://docs.joomla.org/ Migrating_from_1.0.x_to_1.5_Stable
It basically involves installing a component on your existing 1.0.x site to create a file that will be used when installing a fresh Joomla 1.5.x site.
Note that we said 'migrating' instead of 'upgrading', this is because you actually need to download Joomla 1.5.x from the Joomla site and do a completely fresh install on your development machine, rather than edit any existing files.
Nearing the completion of the the installation process of the Joomla 1.5 site there will be a screen that will allow you to kick off a migration process, simply upload the file that was created earlier from your old site and it will import with a good amount of success the following:
- core modules
- custom html modules
- data from core components
What it will not import though are (among others)
- 3rd party plugins / components / modules
- custom plugins / components / modules
- templates (as these are file based)
If you are making the move all the way to Joomla 1.6.x, then this is all you need to do with the Joomla 1.5.x migration, move on to 'Migrating from 1.5.x to 1.6.x'
Why? Joomla 1.5.x allowed plugins, modules and components to run in what was called 'legacy mode', which meant that it allowed code that was built for Joomla 1.0.x to run in a Joomla 1.5.x site.
This backwards compatibility is non existent in Joomla 1.6.x as the core of the site has been modified too much to efficiently be able to allow for older code to be supported. While initially it may seem like a pain, looking forward this is a good move as it will force extensions to be well written and closely follow the Joomla conventions, making it much easier for developers to make their own extensions or work on existing code.
If you are planning to stay at Joomla 1.5.x for now, then you will now need to start the process of reinstalling all of the components, modules and plugins that you had on your 1.0.x site and switch on the Legace Mode plugin to allow them all to run smoothly.
You will also need to make a few modifications to your template file as the syntax for displaying Joomla elements has changed somewhat. Details on upgrading a template from Joomla 1.0.x to 1.5.x can be found here: http://docs.joomla.org/ Tutorial:Upgrading_a_Joomla!_1.0.x_template
Migrating from 1.5.x to 1.6.x
Thankfully a component has been created to help out with this move, at the time of writing though there were a few issues we found which we'll outline shortly, but first, how to use it.
The component is named jUpgrade and can be found here: http ://extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/11658
This step doesn't require you to download and install a fresh Joomla 1.6.x site, this component when run will actually download the latest stable package for you, install the files in a new folder that is creates called jupgrade, and will create all the tables it needs to run in the main database but with j16 as the prefix instead of the default jos prefix. This allows you to run the two sites side by side until your migration is complete.
The installation process is pretty impressive to watch, however as noted earlier, there were a few issues that we found with this upgrade (at the time of writing the latest stable version of Joomla was 1.6.0 and the latest stable version of jUpgrade was 0.5.3, while our experience was with 0.5.1, some bugs are noted to be fixed and will be marked as such)
- Placeholder / separator menu items were not moved over (possibly fixed in v0.5.2)
- Many menu items were pointing to the wrong article (possibly fixed in 0.5.2)
- Multiple menu items were marked as the default (possible fixed in 0.5.2)
- Creating new menu items throws an error if an alias is not explicitly set, however the menu item is still created (this may be a Joomla bug, not the jupgrade)
- Content of custom HTML modules were lost in the move and needed to be manually re-entered
- At first attempt trying to view a category listing (from a newly created menu item) the site throws a 404. The quick manual fix was to move the category to be a child of another category, then move it back. It seemed to work fine after that, but obviously that's a pretty poor workaround. Hopefully this has been fixed in a later release of jUpgrade.
A few extra notes for 1.6.x first timers:
A new feature for 'discovery' is available in the extenuation manager which allows you to simply add your files to the site and have Joomla discover them and present them to you in a list of items that are available for installation rather than have you need to package them and upload them as an installable package.
- There's been a change in the required XML format for your extensions, which you can see here: http://www. finishjoomla.com/blog/22/joomla-16-vs-joomla-15-templatedetailsxml/
- When installing a module, while the installation will be successful, it won't show up in your list of modules straight away as you are used to. You need to create a 'new' module, the module you installed will show up in the list of modules you can choose for the module you are creating.