Upgrade Your Drupal Skills
We trained 1,000+ Drupal Developers over the last decade.
See Advanced Courses NAH, I know EnoughConfiguration Split in Drupal 8 and 9. How to Add Config To Your Live Environment
Let’s first start off with understanding what the Configuration Split module does. In simple terms, it allows you to have different site configurations for your different environments. For example, you want to turn off the Views UI module on your live site. Or you want to turn off your Google Analytics module on your local, dev, and test environments but still have it active on your live site.
There are so many great articles on setting up configuration split. Here are a few good ones that I suggest reading to get you caught up to speed.
In other words, say that you have already set up your config-splits a few months ago but now your client wants to add email support using the SMTP module but you only want this enabled on the live site so you don’t accidentally send out an email from your local site to 1000’s of users. ps — I have done it before Ouch :)
Well in order to add to the live configuration you need to enable the live config split. The natural first step is to go to the config-split UI and disable the develop configuration and enable the live config. Click Click Click. But nothing. Such a simple thing but why in the heck are you not able to enable the live configuration?
One thing all of these tutorials have in common is that they show you how to set the active and inactive config-splits in your settings.php. For some servers, the code is slightly different but the idea here is that Drupal needs to somehow know what environment you are on in order to import the right configuration.
Yep! That darn settings.php
file. The reason you cannot activate the live configuration settings in the UI is that the settings.php
file overrides the UI click clicks. So you need to go to your file and either temporarily comment out that code or just reverse the logic. So here is what I do.
- Reverse the logic in the
settings.php
file. For me, I just have to switch out a ! in my code so that my dev and live environments are reversed. drush cr
— Cache rules everything around me — Clear itdrush cim
Load all of your config from the live environment into your local- Enable my new SMTP module.
- Edit the live config split and check the box next to the SMTP module
drush cex
— configuration exportgit checkout settings.php
so that my file reverts back to my old settingsdrush cr
— you know the drill clear that cachedrush cim
This disables the SMTP module and loads just the development modules on your core- git commit my changes
I then check my setting by doing a drush csim live
. This command imports the settings from the live config. You can also check your config directories manually or with a git status
to ensure there are new files in both of your dev
and live
directories.
If any of you have a better way to enable and add some new configuration to the live environment without all of the steps, help a brother out and let me know in the comments.
About Drupal Sun
Drupal Sun is an Evolving Web project. It allows you to:
- Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
- Facet based on tags, author, or feed
- Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
- View the entire article text inline, or in the context of the site where it was created
See the blog post at Evolving Web