Jump to the navigation menu

How easily can you move changes between environments?

Regardless of how many environments your application has, you need to be able to move changes between them reliably.

You don't want to configure each environment and make every change by hand.

You want to automate this as much as possible so your changes are the same every time.

In Drupal 7, the Features module was used to export changes once and apply them again using a features revert command - although its original use case was to extract reusable features for different applications.

I've also written a lot of update of update hooks, like mymodule_update_8001 to apply changes when database updates are applied.

Since Drupal 8, we've had configuration management - a first-class way to export and import configuration changes - which I think was one of the best additions to Drupal 8, and something not available in some other CMSes, frameworks and applications.

There's an ecosystem around configuration management, including Config Split for per-environment configurations and Config Ignore to ignore sensitive information or changes you don't want to manage via imported configuration.

I recently worked on a project where we didn't have a CI pipeline running configuration imports on each change and things were very difficult to manage. Once that was in place, though, things were much easier, more consistent and changes were quicker to release.

- Oliver

Was this interesting?

Sign up here and get more like this delivered straight to your inbox every day.

About me

Picture of Oliver

I'm an Acquia-certified Drupal Triple Expert with 18 years of experience, an open-source software maintainer and Drupal core contributor, public speaker, live streamer, and host of the Beyond Blocks podcast.