Change record status: 
Introduced in branch: 
Introduced in version: 

In earlier versions of Drupal 8.x, the active configuration was stored on disk in YAML files, with a cached version (defaulting to the database) used for accessing the values on normal pages.

Now the default configuration is stored in a database table, while import/synchronization and export still operate via YAML files.

There are no API changes, but existing Drupal 8 sites may need to be re-installed or have file-based configuration migrated into the database table.

Benefits of the new approach:

  1. Nobody is ever supposed to edit active configuration files. The presence of the data as files made it look like they can be changed. In reality, they were only touched on configuration writes and accessed from their database cache otherwise. The existence of the files misled people.
  2. The new approach means less YAML file parsing and file stat() comparison needs, resulting in speed improvements.
  3. Not needing to write those YAML files all the time with configuration changes is even faster. This results in easy to feel performance improvements in the installer and while running tests, among other places.
  4. When exporting configuration for working on other sites, it is still possible to export to YAML files in their up-to-date state (on the UI or with drush config-export). This is still the native format for shipping configuration in projects and for syncing configuration.
  5. Not exporting configuration as YAML files by default makes the system more secure: although the prior way of storing configuration in files was as secure as we could make it to be, not storing them as files at all is still more secure.

To get back configuration as files on your development server, see

Site builders, administrators, editors
Module developers
Updates Done (doc team, etc.)
Online documentation: 
Not done
Theming guide: 
Not done
Module developer documentation: 
Not done
Examples project: 
Not done
Coder Review: 
Not done
Coder Upgrade: 
Not done
Other updates done


Kartagis’s picture

This page isn't helping much. Where do we get our settings?

$config = \Drupal::config('spaces_enforced.settings');

didn't return anything.


Berdir’s picture

As the change record says, there is no API change. However, you do need to re-install, and your problem is more likely caused by the move of the default config directory (config/ to config/install)

tyler.frankenstein’s picture

Just toss on a call to the get method, and you'll have access to the config in Drupal 8:
$config = \Drupal::config('')->get();

dcrocks’s picture

What's the difference? Does one represent active config files?

David Rocks

pwolanin’s picture

This doc page needs to be updated if anyone has time:

Work: BioRAFT