Visit the following tutorial to get your step by step guide: http://docs.joomla.org/Migrating_from_1.0.x_to_1.5_Stable and read it all before attempting to do anything.
Step 2: Take BACKUPs
As always, take full backups of everything, database, files, everything!!
Download the Migrator Component which migrates your content
The migrator.zip can be found here: http://forum.joomla.org/viewtopic.php?p=2721623. Make sure you login to the forum and then download the migrator.zip as an attachment from that forum post. Install the component like any other component you install on a Joomla 1.0 component.
Install any 3rd party migrator plugins
For our site we needed to migrate these components
1. Docman for our file downloads - Migrator plugin available (subscription required)
2. JoomlaComment for comments on our articles (apparently none is needed)
3. Kunena for migrating the forums (supposedly none is needed here either)
These were our most important components to migrate ... fingers crossed!
Create the migration SQL file - this create a SQL file which will be used to import the data into your new Joomla 1.5 website.
Create a new Joomla 1.5 installation. Do not overwrite your current joomla, create a new one from scratch. This makes sure that if it all goes wrong, you will have something to go back to, and you can keep your original installation clean.
Create a new installation of Joomla 1.5, but do not complete the installation steps. You need to enter the database information, but then stop at the section where you enter the website name, admin password. Upload the migration script generated by the previous step to /installation/sql/migration.
IMPORTANT: Rename the file to migrate.sql
Enter the old table name prefix
If you have uplaoded the file manually, tick the checkbox which says "I have already uploaded".
Tick the checkbox which says: "This script is a Joomla! 1.0 migration script"
Inevitably cockups are bound to occur.
Problem 1: Export data was too large for our host to handle. The migrator script was consuming so much database power, that it triggerred off a temporary ban on our hosting account. Hopefully you don't run into this issue. To solve this we replicated the setup to our local XAMPP installation so that we could ran the migrator script locally. This required a SQL backup of the database. This triggerred another temporary ban. Lots of data in our database it seems :) Anyway, eventually we got the backup of the database which was restored to a local copy of the live installation.
Problem 2: Deprecated functions in Joomla 1.0 and PHP 5.3 - to fix problem one we replicated our website locally on XAMPP. The huge problem is that Joomla 1.0 and PHP 5.3 are arch enemies. They don't play nicely together. A couple of things to fix these problems were done. Disabled as many deprecated errors as possible via php.ini files and other such hacking. Actually code changes where necessary to remove deprecated functions and code in Joomla 1.0 and PHP 5.3 .
Problem 3: Importing Failed on create docman table MyISAM. Attempt to fix. Remove Type=MyISAM. Succesful!!
Problem 4: Table does not exist josmenu_migration_migration_migration . For some reason there seemed to be a problem also in one of the scripts. The jos_menu table seemed to have a bad naming convention which also broke the execution of the script. Replaced the bad names with the correct equivalent, and ran the script again. Successful!!
This was a fairly straightforward one. Just export the old tables from the old database to the new one. Install the 1.5 commonent. The only quirk we had was that, the old template was gone so we had to configure a new template to be used. Very smooth :)
2. Migrating Docman
We migrated the data using the migrator tool. However, when we installed the new component we fould the files to be missing :( Let's see how we're going to try to fix this one. Tried going into configuration but threw an error -
"Fatal error: Allowed memory size exhausted"
This was fixed by doing the following:
Sites with large user-bases should turn off 'Allow individual user permissions' in the configuration. You can change this setting manually by editing /administrator/components/com_docman/docman.config.php and changing this line:
var $individual_perm = '1';
var $individual_perm = '0';
That worked fine.
Also, remember to copy all the files from the old site to the new site, to make sure there is no "Missing file errors"
3. Migrating Kunena
First of all, go through: http://www.kunena.org/docs/K_2.0_Upgrade_Guide
We simply imported the old tables from Kunena, and installed a fresh version of Kunena on top of these. Once again, the transition to the new version was as smooth as can be. Another well done!
4. Migrating sh404SEF
This proved to be somewhat problematic. After we had gotten everything working fine on the local server, the component refused to work well on the live server. After a lot of tweaking and testing various things, what finally got it to work was complete uninstall, deletion of all tables and re-installing from scratch. If you have an issue with purging your old URLs then you are probably going to be very uncomfortable doing this. For us it wasn't ideal to do this but a necessary evil. We will have to monitor to 404 errors and make sure they are fixed as time goes by.
Final thoughts, although not very very complicated in general, the size of our database created a number of issues. One needs to be quite careful when migrating a site which has a database of significant size, since it is highly likely to run into problems in this regard.