I am in the same boat, more or less, as you. I have a couple of clients who are currently running 18.104.22.168 and need to upgrade to 22.214.171.124.
At first I was going to just do a clean 126.96.36.199 install and then export all products (assuming your product list is manageable and under a few hundred) as well as export customers and import into the new store....and just do the leg work in terms of converting the template, re-configuring everything, etc.
But a few things came up that made this particular way unfeasible. Mainly, no way to export/import orders without the possibility of purchasing a $100-200+ order export module and even then I wasn’t sure if it would solve that issue. Another major issue was one client had close to 3,000 products. No way was I going to try to do those again, assign them to categories, etc.
I came across another post here in the forums where someone suggests a particular way of doing this and after trying it, it seems to work pretty well. Albeit, there are some issues and I am still working out some broken stuff, but nothing major. Plus, if you do this first in “staging area” while the live site continues to run, you can work on it until you are satisfied and then do a quick switch.
Let me provide you with a quick run-down of what I did and if you have any questions, please let me know either in here or via PM.
You will need knowledge of usage of CLI (command-line interface) via SSH (Terminal app in Mac, putty in PC, etc)
1. Make a full backup of your current site. I usually login via SSH and create a backup of the entire store.
2. Dump your entire live database to an SQL file via CLI (command line interface) in SSH
tar -cvf backup.tar directory_your_store_is_in/
It will prompt you for the database password, which you can obtain inside the /app/etc/local.xml file
mysqldump -h DBHOST -u DBUSER -p DBNAME > data.sql
Ok, now you have your store backed up and the database backed up. In case anything happens, worst case scenario, you can restore it all.
3. Create a sub-directory within your main store directory, call it “staging” or whatever you like
4. Create a new, blank database and assign it a new user/pass
5. Take your recently dumped SQL file and upload it into the new database
Again, it will prompt for the password, this time of the new database
mysql -h DBHOST -u DBUSER -p DBNAME < data.sql
6. Once you have the data imported to the new database, you can then do a fresh install of Magento 188.8.131.52
7. Move into your new “staging” directory and run the following commands
tar -zxvf magento-184.108.40.206.tar.gz
mv magento/* magento/.htaccess .
chmod o+w var var/.htaccess app/etc
chmod -R o+w media
chmod 500 mage
./mage mage-setup .
rm -rf magento/ magento-220.127.116.11.tar.gz
8. To help you out while installing, as errors are sure to happen, go into the new “staging” directory via FTP and rename the file “/errors/local.xml.sample” to “local.xml”. This will make it so Magento actually tells you what is breaking instead of just giving you some random error code that you have to dig and lookup in the error logs.
9. Ok, now you have 18.104.22.168 files installed into a new directory and a database waiting to be “upgraded”. Go to your browser and go to that new directory (ie. http://www.yourdomain.com/staging/)
This will load the Magento install. Go through the steps, plug in your new database info, etc. When it asks you to create a new admin account, you’ll need to setup a different one than your current as it is currently in the database and won’t accept it. (ie. the default is “admin”, but since that data was previously uploaded into this database and it already exists, you’ll need to setup a different admin account).
You MAY run into an error or two while trying to install. I ran into an error w/ the Find Feed portion of Magento. If this happens, contact me and I’ll let you know what I did.
Once you have successfully ran the install, you should be able to login to the backend of the system. At this time you should be able to view all of your customers, all of your orders and all of your products.
Now...the products are there, but the images are not…
Back to the command-line. Go into your live store directory and copy everything within the media folder into the media folder of the staging site.
(please keep in mind I am assuming your current live store is installed in the root folder of your site)
cp -R media/* staging/media
At this point, you should have products w/ images, categories, orders, sales data, customers, discount codes, etc.
Now you’ll want to copy your custom theme folder over to the new staging folder (design and skin folders). This will likely break the site and you’ll need to make some changes if your theme is custom and/or 1.3x based. If you purchased your theme from someone, see if they have a 1.4x version available or at least can provide you with the changes that need to be made.
The one main change you’ll need to make sure you do is edit the /layout/page.xml file of your custom theme and find the line
<block type="core/profiler" output="toHtml"/>
change it to
<block type="core/profiler" output="toHtml" name="core_profiler"/>
You will probably find that line twice and need to change it in both place within the page.xml
At this point, you can go in and start installing extensions via the Connect Manager. If it was a previous module you had, chances are the settings you had for it will still exist in the database and you won’t need to make too many changes regarding it.
Well, I hope that gets your started. I’m finishing up my first upgrade from 22.214.171.124 to 126.96.36.199 and going to working on another soon, so I may come across some more info that may be helpful.
Anyone else feel free to chime in here on this.
Sources & Credit: