I've finally gotten my Drupal7 Development->Staging->Production file & db syncing all working nicely using a mix of rsync, rsyncd, git &, where it doesn't cause more/unnecessary work for me, drush.
Not the cleanest approach, but all working quite nicely.
Until i realized ...
a DB push from Staging->Production that contains changes I've made & QA'd @ my Staging site (for modules, site config, etc), will overwrite any/all user data/content @ the Production site. Unless, of course, I specifically identify & exclude the tables that contain data/content -- and simply don't inclue them in the push.
My question is -- other than manually checking -- is there a reliable method (a pre-existing static list? a sql query on table names? something?) to know those tables to exlude?
This
How to migrate from test environment to production environment? How to migrate from test environment to production environment?How to migrate from test environment to production environment?
in addition to countless other threads I have found, mentions "Features" and "Deploy", and basically says "it's hard". If the answer's "in there", I haven't wrapped my head around it yet.
Again, I've got the mechanics working as I want them. This last step is identifying -- and voiding overwrite of! -- the user content/data at the Production site.