We have a deployment process where we are required to create a “rollback” point before a release is committed to our live server.
We have a staging server where all release candidate code is tested. Now this staging server also includes all the channel data, content, etc that is modified before a release. These two tables are identical copies with the exception of one of our global variables {site_url_https}
We will create a mysqldump of the production server’s DB before the release to create the rollback point. We will then create a mysqldump of the staging server’s DB and apply it to the production server’s DB to complete the release.
What tables would I need to backup in order to provide a rollback point before a release is applied? This should include all changes to content, channel data, categories, custom fields, etc. What tables would I need to “copy” from the staging to the production server?
I have a script to create the SQL backup file and will post it after testing.
Also, is there a function that I can call from a script that will synchronize the templates table with the template files?
Some of these might be moot if you're not using certain features (like comments, entry versioning, etc).
To backup all content, categories and comments:
To backup field/channel/category structure and settings:
To backup templates and related:
To backup member-related data:
To backup installation of new modules, extensions, changed site settings more generally:
If you're using MSM: