In this article we explain how we did our migration to Joomla! 3.0 and the recommended steps to follow if you want to migrate too. Read it carefully.
1Do I need to update to Joomla! 3.0?
NO. Recently Joomla! has adopted the Ubuntu release cycle. What that means?
As you can see in the image now there are two kind of update cycles (blue and orange) based on his support lifetime:
- Long Term Support (LTS). This versions have a support lifetime of approximately 24 months. The Joomla! default update cycle.
- Standard Term Support (STS). This versions have a support lifetime of approximately 6 months. We can call it the fast update cycle.
Almost every site should use the LTS update cycle as it ensures you two years of support and stability. The STS update cycle is for sites that want to live in the cuting edge. Ask yourself this question:
Do I really want to base my website in something that has six months of support?
The Joomla! 3.0 FAQ may help you to decide. 90% of the times the answer should be NO. Our advice: If you aren't able to fix it don't break it.
Take us as an example. Why we switched to Joomla! 3.0?
We are a web development company and we are supposed to live on the cuting edge. Our Joomla! extensions have to work in both 2.5 and 3.0 versions and the best way to achieve this is working with them daily in the desired enviroments. If something goes wrong after the update we can fix it ourselves.
2Hosting Requirements
So you decided that you are ready to switch to Joomla! 3.0? That doesn't mean that Joomla! 3.0 is ready for you. The first step is checking if your hosting provider meets the requirements.
Joomla! 3.0 requires:
- PHP 5.3.1.
- Supported databases.
- MySQL 5.1 + (with InnoDB support)
- Microsoft SQL Server 10.50.1600.1+
- PostgreSQL 8.3.18 +
- Web servers.
- Apache 2.x + (with mod_mysql, mod_xml and mod_zlib)
- Nginx 1.0+
- Microsoft IIS 7
Personally I wouldn't still use PostgreSQL or MSSQL as database servers. They are having some issues and this is the first release that supports them.
3Update to the latest 2.5 version & global checkin
It's a good practice to update to the last 2.5.x version before upgrading your Joomla! You can update to the latest version (at the moment of writing this 2.5.7) through the Joomla! updater component:
After updating we will ensure that our database is Ok with the great checkin tool integrated in Joomla! 2.5. Go to System > Maintenance > Global Check-in select all the tables and click checkin.
4Backup, backup, backup!
Need to mention that first of all you need to fully backup your site? And now updated and checked is the best moment. You can use Akeeba Backup. A great extensions that is already compatible with Joomla! 3.0.
If you use a version control system you can create a new branch. That way you can allways come back to the production branch if something goes wrong while updating.
5Dependencies
5.1. Template
The first thing to think in: your template. If it isn't compatible with Joomla! 3.0 you may have to change it. If you finally have to change it why don't use a responsive one? Almost all the template clubs out there are exclusively releasing responsive templates.
Related to templates there is another important check: Your template overrides. They may be outdated and use some of the deprecated functions. As an example in our case our content category overrides used "JHtml::core();" and we had to replace it with "JHtml::_('behavior.framework');".
5.2. Main content
Another important dependency will be the main content management of our site. You can use native Joomla! or K2 content that has already been updated to work with J!3.0.
5.3. Other extensions
The next step is to check that all the extensions that you need are available for Joomla! 3.0. You can use the advanced search in the Joomla Extensions Directory (JED).
Actually there are only 485 extensions (from more than 10.000) marked as compatible for Joomla! 3.0. This may give you an idea of the current Joomla! 3.0 limits.
If you find that your extensions are not compatible you can search alternatives. If you don't find alternatives you can ask the developer if he has planned making the extensions compatible. Maybe it's worth waiting 1 or 2 weeks.
5.4. Remove non-compatible extensions
Our advice is that before upgrading you remove all the extensions installed that are not compatible with Joomla! 3.0.
This is a really important step as your site will be broken if you don't remove an extension that isn't compatible.
6Install DS Constant plugin
One of the biggest backward incompatibilities in Joomla! 3.0 is the deprecation of the DS constant. A lot of extensions still require it and it's a good idea to keep/reintroduce it while all the extensions are migrated.
In our first migration attempt we manually reintroduced it. Brian Teeman suggested us to create a system plugin to avoid this simple step to the end users. And we did it. So the next recommended step is to download, install and enable it (do not forget to enable it! ).
7Switch the update cycle to STS
We are almost there. The next step tell our Joomla! that we are mad enough to switch to the STS update cycle. Go to Site > Control Panel and click in the "Joomla is up-to-date" icon to open the Joomla updater. Once there select the STS
8Do the update!
We are ready. After saving and close the Joomla! we will see that there is an available update:
Cross your fingers and click on the "Install the update" button.
If all is ok we are in our new Joomla! 3.0 site :)
9It's broken!
Is probable that you have found any issue while updating. Relevant issues will break the backend and you will be out. You can manually disable any forgotten extension editing the database table #__extensions. You can use phpMyAdmin or any other SQL tool:
If your issue is related with the frontend template you can assign the default Protostar template while you try to fix it.
If finally you can't fix it restore your backup :(
Feel free to ask us any question or problem related with the upgrade to fix/keep updated this guide.
Sources / more info
http://www.joomla.org/3/
http://docs.joomla.org/Joomla_3.0_FAQ
http://www.joomla.org/technical-requirements.html
http://savvypanda.com/blog/new-joomla-release-cycle-infographic.html
http://developer.joomla.org/development-status.html
http://docs.joomla.org/Release_and_support_cycle