We are planning to upgrade our website from magento 1.6.2 to 1.9.2. We want to take opportunity of this upgrade to make some changes like developing a new skin, arranging our products, etc.
Basically we would have to copy the database of our existing online web store, work on a local copy of the web store, and then put it online when all changes are accomplished. However the local database and the online databases will be out of sync as new customers and new orders will be coming while we are developing locally. How can we solve this issue without making the online website unavailable during all the time we are developing locally?
Thank you in advance for any advices.
First of all, you need to make changes into the local server and then make it live. For the customers and new order you need to migrate the data.
You must always run upgrade process first on development sever.There are lot of tutorials which will give you information baout Magento upgrade.
Once you have done all the upgrade related tasks and verified everything like order placing, payment options, Google Analytics, custom extensions. Then you should put your live site on maintenane mode for public during least traffic hours and move all your changes to productions site. (Note: Before doing this you must take full backup of your production site including code and database.) .Now on production you should run upgrade process.This should be easy for you because you would have done all the process on dev server and fixed the issues which occured that time.
Thank you for your replies
Once you have done all the upgrade related tasks and verified everything like order placing, payment options, Google Analytics, custom extensions. Then you should put your live site on maintenane mode for public during least traffic hours and move all your changes to productions site.
The problem is that during the "upgrade related tasks" both the local database and the online database will change. The local data will be modified when adjusting settings of our new store, while the online database will get new orders, new customers or possibly changes in their accounts.
The important thing is that we need a copy of the database when creating a development store. This database will then be modified during the development and these settings should not be lost.
The development we are planning to do will take too much time to put the live site on maintenance mode all the way.
We need to end up with a database containing the new orders and customers related data in one hand, and our new settings tweaked locally on the other hand. Would be nice if magento offers a way to upgrade them separately.
Basically, the changes you make will be done on your development environment using a backup of the live DB (or staging one that has all settings etc the same as live preferably as it will not have customer data). This will enable you to make sure everything is working correctly.
When you are ready to deploy, put the live site in maintenance mode, update the code elements of the site using whatever deployment process you use (core code, theme, custom code etc) then trigger the upgrade and reconfigure the live site with any configuration changes you have made. Check that the live site is running as expected and then remove the maintenance mode flag and the site should be up and running on the newly upgraded version.
Thank you for your reply.
When you say "reconfigure the live site with any configuration changes you have made", you mean to do it manually from the back-end, right?
That means all changes made locally during development cycle (i.e new pages, new blocks, changes in the module & skin settings, changes in the product and category infos, etc..) have to be done again manually while putting the live website in maintenance mode. Without mentioning the risk that some settings may not be copied properly, that means to keep the live website off for a while...