I’ve had a few discussions with people now about how to upgrade to Magento 1.4 in the best fashion. Here is my approach, which works well, and I believe provides the cleanest solution.
1. Backup everything!
2. Create a sub-directory called /new on your server
3. Copy 1.4 release to /new
4. Take a copy of the existing 1.3.* Magento database, rename it and upload to MySql
5. Change urls in core_config_data to point to /new
6. Run magento installation process on /new, referring to the copied Magento database created in step 4 above
7. Copy media data from base Magento directory into /new
After the installation has completed attempt to login to the magento installation at /new – what you should find is that you still retain all your catalog/customer/settings from 1.3. If you look in the database you will see that this has been updated to a 1.4 database. As far as I can see there are no downsides to following this approach, Magento copes well with upgrading the database.
From here you need to re-install your extensions and create/install your theme. Because the 1.4 release is so signficant I think you will find that you will need to get a new theme, and possibly new extensions. I certainly wouldnt recommend installing a 1.3 theme on 1.4 – it’s not going to work.