Upgrade Magento to 1.4.1: Part Two
In conclusion to my earlier post on Ecommerce Web Design, and now the dramatics are over and the chapter is closed: how to get it all working again.
When we left our poor, slightly upgraded website we had a blank frontend, and so, to the third and final lesson I learned from the recent (attempted) upgrade:
Lesson Three:
For some rhyme or reason, importing what is supposed to be an upgraded 1.3 database into a new 1.4.1 installation (with it’s own clean database) just doesn’t work: Bad Things happen when importing an older database into a clean and empty new database -as soon as the cache is cleared, the entire thing collapses – after three attempts, the upgrade was abandoned.
In the end, I argued that upgrading from 1.3.anything will mean getting a new version of your theme or a new theme altogether anyway as you cannot use a 1.3.something theme on a 1.4.something Magento installation – Bad Things will happen, maybe not straight away – but they will happen. Checkouts break, payment methods fail and emails fail to send (to say the least).
In order to make it as painless as possible, I documented the process – the only thing that is a pain to loose on live shops is the order history, which I hope to one day discover how to export.
- Export your customers and products csv’s from your current installation
- Download your media folder
- Purchase a test domain
- Set up a new database
- Install the latest Magento version on the new domain
- Theme your new magento 1.4.1
- Create your categories
- Edit the products csv from your previous installation – check your category id’s correlate with the new installation
- Edit the product images to just /imagename.jpg
- Move the images from /category/product in your media folder to /import
- Upload your products and customers csv files
- Upload your media folder
- Set up your payment and shipping methods
I hope this helps if any of you reading our Magento blog is planning an upgrade!

On a new installation of 1.4.1.1, just drop the database, create the database and import your 1.3.1.1 SQL backup. Change domains with a simple mysql command if your live and dev domains are different. Start the admin panel on your 1.4.1.1 instance, the 1.3 data gets converted to 1.4 data without all the “foreign key/column already exists” junk YOU WILL GET IF YOU IMPORT 1.3 DATA INTO A 1.4 DATABASE.
“FOR SOME REASON” actually translates into “Jamming 1.3 columns into a 1.4 database always breaks things as it only partially updates the data to the tables that already exist, but leaves incipient data corruption for all the 1.4 tables that have no correlation to the 1.3 schema.”
I did this on a near daily basis for two months, pulling data off our running 1.3.1.1 site to our 1.4.1.1 site so I could hammer out all the template issues.
Hi Sean, thanks for your comment! I remember getting the foreign key errors, but couldn’t figure out how to fix the issue and time was a heavy factor, which didn’t help. How did you resolve the issue?
hey, this idea is ginuis but i want to transfer with me the 1.3.2.4 sales & orders, how can i do it? can i upgrade only this table manualy ? this thing will work? please answare me. thanks!
Hi Ariel
We didn’t transfer the sales & orders in this instance – I’m not sure that they’re compatible at all with 1.4 off the top of my head, but give it a go. Maybe compare the relevant tables between a 1.4.* and your 1.3.2.4 ?
Please post on how to upgrade to 1.6
I just completed a Magento 1.3 to Magento 1.6 upgrade and to say it was difficult is an understatement. My advice to anyone upgrading a Magento 1.3 install to a newer version, is to run your existing database through the Magento database repair tool before upgrading. It will save a lot of hassle. Cheers
Hi! I am going NUTS. I have tried everything to go from 1.3.3 to 1.4.1 (my goal is really 1.6) and nothing works.
I tried Sean’s suggestion and did not work. I then tried Ryan’s suggestions – both DB are the same and I still get a bloody “Base table or view already exists: 1050 Table ‘core_variable’ already exists” error.
Anyone have any ideas? Anything?
Cheers!