How Hard Is It to Migrate from Joomla 1.5 to Joomla 2.5?

We are getting customers on a daily basis nowadays asking us to migrate their websites from Joomla 1.5.x to Joomla 2.5.x (we are also getting requests to migrate websites from Joomla 1.0.x to Joomla 2.5.x). Some of our customers inaccurately believe that it’s easy to migrate from Joomla 1.5 to Joomla 2.5, and think that it’s easy for anyone to do this migration, and tell us, “This is probably the easiest job in the world, how hard is it really to migrate from Joomla 1.5 to Joomla 2.5?”

Let us answer this question in 5 words: “It is very, very hard!” It involves a lot of sweat and a lot of programming!

Migrating Joomla from 1.5 to 2.5 is not a standard process, and there are no reliable tools to do this. In fact, most of the work that we do in this migration is manual, and involves heavy programming. Here is a step by step process on what we do to migrate from Joomla 1.5 to 2.5. The below will demonstrate how hard it is to do this migration:

  1. We first backup the whole website, including the database. Although we do not change anything in the original website during the migration process, we do a full backup because we think that it is a best practice before doing work of this magnitude.
  2. We create a blank database that will be used to contain the data for the new Joomla website. We ensure that the same user who has access to the old Joomla website has access to the new Joomla website. (This is not necessary but it’s a good practice as we won’t have to keep track of multiple usernames and passwords.)

  3. We install the latest version of Joomla in a sub-directory under the main website. We download Joomla, upload the zip file to a directory under the main (old) Joomla website, and we call this directory v25x (where x stands for the current Joomla 2.5 release, for example, at the time of the writing of this post, the latest release is Joomla 2.5.6, and so we call this directory v256), we then extract the zip file using the File Manager tool in cPanel. Once Joomla is extracted into the v25x folder, we run the install script, and we make it use the blank database that we have already created in the previous step. We ensure that the main super administrator on the new website has the same credentials of the one on the old website.

  4. We copy non-core folders/files from the old Joomla website: For example, we copy the images folder from the old website to the new website. We also copy other folders that contain static files – such as pdf and swf folders. We also copy non-core files such as swf files and html files located in the root directory of the website.

  5. We migrate and install the template. The second step in the migration process is to migrate the template. In 99% of our Joomla migration cases, the customer is using a customized template and so we can’t just download the latest version of his template and install it. Migrating the template means that we need to accommodate the index.php and the templateDetails.xml files to the latest Joomla version. Note that there might be many other files in the template that need to be migrated as well, and that there are some websites that use multiple templates rather than using only one.

  6. We re-create the users.: If the website has only a few users for administration purpose, then we re-create them manually. But if it’s a website using the registration component heavily, then we re-create them using a script.

  7. We re-create the articles on the website. If it’s a small website, then we re-create the articles (as well as the categories) manually. If it’s a large website, then we write a script that will import the articles (and, again, the categories) from the old website and automatically write them to the new website. Note that we do not use any 3rd party tools to do this, because in our experience, they create problems later in the migration.

  8. We migrate the modules. This is where the work becomes really challenging. Almost all of the websites that we have migrated so far (we have migrated exactly 87 websites to date) had at least a few modules that did not have a version compatible with Joomla 2.5 (so we couldn’t just download the Joomla 2.5 version of that module and install it). For such modules, we usually follow one of the three following methods:

    1. We re-create the module from scratch. We go this way if the module is very complex and our client is only using a small part of its functionality.
    2. We fix the module. This is our preferred solution to migrate a module, we just fix it and make it compatible with Joomla 2.5. The fix sometimes can be easy, but sometimes can be very hard.

    3. We find a similar module. There are some very old modules that were discontinued a few years ago, but that re-incarnated under other names but with very similar functionality. We usually do this for modules that manipulate menus such as the SuperFish module (we replace this module with the ARI Ext Menu module)

  9. We migrate the plugins. Plugin migration is very similar to module migration. We check which plugins the website is actually using, and for those plugins that do not exists on the new Joomla version we either 1) download the latest version of these plugins and install it, 2) re-create these plugins from scratch, 3) fix these plugins, or 4) try to find plugins that do the exact same thing.

  10. We migrate the components. The component migration process is the same as module migration and plugin migration, but with one difference – it is much more complicated, because components, unlike modules and plugins, can save a lot of data in the database. And, for some components, even if there is a version of that component compatible with the latest version of Joomla, then the structure of the data for that component is completely different from that of its previous version. An example of such component is VirtueMart. The structure of the data in the database of VirtueMart 1.5 is very different from that of Virtuemart 2.0. For example, the concept of attribute in VirtueMart 1.5 and lower is replaced with the concept of custom fields, and the product description in VirtueMart 1.5 is in the same table as the other product information, while it’s in another table in VirtueMart 2.0 (both are joined using a join table). There also many examples of data inconsistency between different versions in VirtueMart alone, such as the storage of the images, the structure of the category table, etc… This means that for extensions such as VirtueMart we need to create scripts to migrate the data (again, we don’t trust scripts made by 3rd parties). That can be a very long and a very tedious process. By the way, in one of the websites we just migrated (we finished its migration yesterday), the migration of VirtueMart took us more time than the migration of the rest of the website.

  11. We re-create the menus and the menu items. Unless the website has hundreds of menu items, then we do this process manually. This process is not as easy as it might look like, this is because it is during the re-creation of the menus when we discover that we need to create a content in some component, or an article that we’ve forgotten, or maybe we need to install a component that we overlooked. The re-creation of the menus takes a long time because it’s more or less like an initial QA (Quality Assurance) check on the website.

  12. We re-create the content of the site modules. This step is different from the migration of the modules because in this step we re-create the actual content of the different site modules (such as Custom HTML modules), and we assign them to the appropriate pages.

  13. We ensure that the links are properly redirected. This step can take some time as it’s very possible that in the new website the link structure has changed, and thus we need to add 301 redirects to ensure that traffic to the website is not affected by the migration.

  14. We test the website. Now that we have created all the content, the users, and migrated all the extensions, we can start testing this website. During this phase of the migration project, we…:

    • Tweak the CSS: Joomla 2.5 generates HTML that is different than Joomla 1.5, and that’s why we need to tweak the CSS to make the site look exactly the same as the old one. (Note that migrated modules and components also generate HTML differently than their previous versions.)
    • Fix bugs: It is normal during projects of this size to fix bugs. At itoctopus, we are proactive in finding bugs: we try to find them before they find us! Fixing bugs is a lengthy process that can take many hours. Bugs include “500 pages”, “404 pages”, errors on the website, etc…

    • Ensure that each and every page is exactly the same as the same page in the previous version: This where we spend so much time. We check each and every page on the new website, and we check that not only it is visibly identical to the same page on the old website, but that the underlying HTML is nearly identical. For example, we check that the meta tags are the same, that the page title is identical, etc…

    • Test the different functions of the website: The last step before replacing the old website with the new website is to test the functionality of the website: Does that contact us form work? Can people buy from the website? Is search working and returning the same results as the previous website? etc… All inconsistencies in the functionality between the old and the new website are addressed and fixed during this stage.

  15. We move the website. Now that we have checked that everything’s OK with the new website, we back it up (e.g. we backup the new website), we then move all the folders and the files under the old website to another directory, and then we move all the folders and the files under the new website to the real website’s directory. This step will effectively replace the old website with the new website, and the best part is: our customers rarely, if every, notice that we actually did the move! They only know that they’re running Joomla 2.5.x when they login to their website!

So yes, it’s hard, really hard to migrate from Joomla 1.5 to Joomla 2.5 and it does take a lot of time, at least 2 days for small websites with no VirtueMart. If you want to migrate your website from Joomla 1.5 (or even before) to Joomla 2.5 then why not contact us and let us do it for you? We’ll give you fair estimates (and our fees are affordable), we’ll work on your website as if it was ours, and we’ll try to do it in the shortest time possible. Oh, and we’re fun to work with!

8 Responses to “How Hard Is It to Migrate from Joomla 1.5 to Joomla 2.5?”
  1. Pingback by .htaccess File Being Rewritten Every 30 Minutes on Joomla | itoctopus — August 26, 2012 @ 10:34 pm

    […] the benefits (especially when it comes to security) of migrating to Joomla 2.5.x as well as the complexity of such migration. We’re happy to say that our customer was convinced and has decided to migrate all her […]

  2. Pingback by Joomla 1.5.26 Is No Longer Secure! | itoctopus — September 3, 2012 @ 8:08 pm

    […] The majority of Joomla websites out there are still using the Joomla 1.5.26 version – simply because it’s too hard to migrate from Joomla 1.5 to Joomla 2.5. […]

  3. Pingback by Why Migrate to Joomla 2.5? | itoctopus — September 9, 2012 @ 9:13 pm

    […] are now recommending all our clients to migrate to Joomla 2.5. When we explain how hard it is to do this migration, we usually get one of the following […]

  4. Pingback by Caution: jUpgrade Does Not Work as It Should! | itoctopus — October 4, 2012 @ 7:14 pm

    […] doing many migrations from Joomla 1.5 to Joomla 2.5 after people discover (the hard way) that these migrations are not that easy at all! Most of the companies/individuals that we migrate their Joomla websites for have already […]

  5. Pingback by Save Button Not Working After Migrating Joomla | itoctopus — October 26, 2012 @ 2:29 am

    […] as many button in the Joomla menu) stops working. This is normal – and it’s because our method of migrating Joomla consists of creating a sub-directory in the main website’s directory, ensuring that the […]

  6. Pingback by 21 Reasons Why Your Joomla Website Doesn’t Get Traffic | itoctopus — November 14, 2012 @ 6:47 pm

    […] Always update your Joomla website to the latest version. We know that it can be hard, but the benefits far outweigh the work, the time, and the money spent on doing the […]

  7. Pingback by Top 8 Reasons Why You Should Use K2 | itoctopus — April 15, 2013 @ 7:45 am

    […] latest version and boom – all the content is automatically migrated! There’s no need to jump through hoops to do that! While Joomla’s content migration can take hours if not days, K2’s content […]

  8. Pingback by VirtueMart: The Most Horrible Joomla Extension to Migrate | itoctopus — November 29, 2013 @ 5:55 pm

    […] A migration is never an easy task, and we have explained that, in details, here. […]

Leave a comment