I guess that this is one of the most common problems that developers face. Version 1 of the website was released way back when so users and data have been added to the live site, but we have all this new stuff sitting in the staging site that we want to transfer to live without breaking live or losing data.

Most people try to do this the wrong way around. Following the steps below is the simpliest solution that I have found:

1) Take a copy of the tables in the live site that relate to users, nodes, comments and cck fields - making sure in particularly that you get every table with a nid, uid or cid - this is where all the new user input data is held - export it to SQL using phpMyAdmin or some similar tool - I prefer the bash prompt myself
2) Take a backup copy of your live database
3) Take a copy of the staging database - this is where all the new configuration sits
4) Import the SQL files into your copy of the staging site
5) Push the new database to live
6) Complete your testing
7) Drink beer

This works best because we know which tables have been altered by user input, rarely will we have a complete record of all the configuration changes that we have made.

Comments

Drave Robber’s picture

Starting from 7) is a quite common mistake. :)

andy inman’s picture

Posted here http://groups.drupal.org/node/181589#comment-731384 on this topic, wondering if anybody would support creation of a new group on g.d.o. ?