How Drupal 8 Solves Configuration Management Conundrums
You’ve spent two months tweaking a whole series of configuration settings in your staging environment to get things working just right. And hallelujah, the last piece of the puzzle just fell into place. Now all you need to do is transfer the changes to the live site.
But therein lies the rub. Because while you’ve been slaving away in staging, people have been interacting with your live site: they’ve filled out contact forms, left comments, completed transactions. You can’t just copy the whole staging database over without overwriting some critical data.
With earlier versions of Drupal, your only option was to redo all the work you did in staging on the live site. Which is exactly as much fun as it sounds. And even if you wrote down every single step you followed in staging (you carefully documented everything, right?), there was a better-than-even chance of something getting screwed up.
Introducing configuration management
Drupal 8 makes site configuration so much easier. It allows you to export all your configuration changes (for one section or for the whole site) to a file, which you can then move around to different sites.
When you import the file to your live site, you get a side-by-side list of the changes being imported as well as the current state of those settings on the live site. A developer or site administrator can then go through and choose if they want to go ahead with each change or leave the setting as it is.
There’s still some manual work involved, but at least you can see all the changes and decide how to handle them. As opposed to having to remember and manually make every single change. Or unknowingly overwriting a key change no one told you about.
And we’re not just talking about email settings. It could be anything that can be stored in configuration management — which in Drupal 8 means almost all the display and layout settings for most of your site.
Site configuration made simple
You can also set site-specific overrides. For example, you can say that in the dev environment, all customer service emails should be sent to your test account, while in the live environment those emails should actually go to customer service. That saves you from accidentally sending a bunch of fake test data to a real CS rep. And it doesn’t matter if you download a new database — the override is written right into your dev settings file.
Organized configuration entities
Also new in Drupal 8 are configuration entities. Similar to content entities, which have attached attributes like title, description, price, etc., configuration entities are self-contained groupings of individual parameters that can be moved around as a unit. Rather than just having one big long list of every individual configuration variable, you can now put them in logical units and keep things a bit more organized.
To learn more, check out our High Five episode “The Best Features of Drupal 8 — Configuration Management.”
Subscribe to our YouTube Channel for more Drupal Commerce goodness!</p