Live site configurations must always be integrated into deployments
Introduction
Actions such as block placement on the live site can cause the configuration to change on the live environment. Always ensure these changes are evaluated, applied as needed, and tested before deploying to the live site.
Decision
During a deployment cycle, synchronize any uncommitted changes in the active configuration from a site’s live environment down to the integration branch and test it with the incoming code changes so that any configuration changes that were made on the live site during the release cycle are captured and not lost during deployment.
Context
In Drupal, settings and site structure are kept separate from content. This allows configuration changes to be captured in code, which makes it easy to rollback any unwanted changes, or QA configuration changes on a separate environment before they’re pushed up to the production server. All of our configurations are captured in version control, and any configuration changes that we make are to be done through synced configurations. Sometimes changes to configuration on live are unavoidable (e.g. client circumstance, block placement). To avoid conflicts, the live configuration is to be brought down to the integration branch and tested prior to deployments.
See the process documentation on how best to synchronize the configuration.
Consequences
- The need to integrate and test live config changes will slow deployments.
Exceptions
- There is no need to import live configuration that is undesirable or that already exists in the incoming code.
Additional Resources
None