title: Wordpress site release management strategy
body: <p>I'm updating an <strong>existing wordpress site</strong> making <strong>significant modifications</strong> the the theme and site structure, as well as making updates to plugins which in turn store their data into mysql database.</p>
  
  <p>As far as I'm aware there are 2 (3?) possible strategies here:</p>
  
  <ol>
  <li>'Dump-and-load' MySQL database from DEV to LIVE and replace wp-content folder with latest updates.</li>
  <li>Import changes via WP-importer and replace wp-content folder with latest updates.</li>
  <li>Make database changes manually via WP admin interface and replace wp-content folder with latest updates (this is useful only for minor changes).</li>
  </ol>
  
  <p>While I am developing in my own separate environment this is for an existing website which is currently live and will continue to receive updates from the public such as comments and entries into contact forms, hence I expect the database to be different now from when I release my changes.</p>
  
  <p>Given this the options above provide the following problems.</p>
  
  <p><strong>1. DUMP AND LOAD</strong></p>
  
  <p>The 'dump-and-load' strategy seems to be out of the question as my data is being updated behind the scenes (this would have been my preferred approach as this is easily rolled back).</p>
  
  <p>Result: requires synchronising databases post release to get latest updates, TOO COMPLICATED.</p>
  
  <p><strong>2. USE THE IMPORTER</strong></p>
  
  <p>Using the <a href="http://wordpress.org/extend/plugins/wordpress-importer/" rel="noreferrer">WP-Importer plugin</a> page and post IDs will get updated, screwing up styling that relies on the post IDs to get activated. This in turn creates a CSS nightmare that I wish to avoid, having to go though the CSS <em>after release</em> to update the new page/post IDs with the ones the database created.</p>
  
  <p>Result: Too finicky, not very professional approach leading to long and complex release process.</p>
  
  <p><strong>3. UPDATE DATABASE MANUALLY</strong></p>
  
  <p>This option is great for small changes but when for more complex releases the list of steps to follow on the PROD interface becomes long and hard to follow, making it easy to make mistakes.</p>
  
  <p>Result: Too easy to screw up, only a last resort.</p>
  
  <p><strong>IS THERE A STANDARD WORDPRESS RELEASE STRATEGY FOR EXISTING WEBSITES?</strong></p>
  
  <p>So basically, my question is: What release process do other wordpress developers follow when UPDATING an existing website? Is there an option that I have not listed below that minimizes hassle and reduces time and complexity during release? </p>
  
  <p>I've set up source control for the site using GIT and I am used to automating things via ANT or similar release script, this may be overkill for the current project but would be ideal to at least know of a simple way to update a wordpress site and minimize the chances of screwing it up.</p>
  
  <p>Thanks!</p>