Note that things vary when managing different configurations per environment. See D8 This article covers config split in a very cursory fashion. For more detail see Configuration Split.
Setup
Make sure your settings.php defines the sync directory at sites/default/config. This can look like the following:
if ($is_installer_url) { $config_directories = array( CONFIG_SYNC_DIRECTORY => 'sites/default/files', ); } else { $config_directories = array( CONFIG_SYNC_DIRECTORY => 'sites/default/config', ); }Code Block . Put it in the Drupal install directory unless you have a good reason to do otherwise.
Code Block language php /** * Place the config directory outside of the Drupal root. */ $settings['config_sync_directory'] = dirname(DRUPAL_ROOT) . '/config/sync';
- Export all the configuration from your site (using Saving Config Changessee steps 3-5 below), and commit it to sites/default/your config directory.
Saving Config Changes
When you want to push up new database setting changes collaboratively, do the following:
...
- Example: Modify permissions
...
git checkout -b feature/yourname/kblog-2--permissions
...
You can export config via the admin interface or by using drush. In most cases, it is more efficient to use drush.
Exporting config changes for a Pull Request | ||
---|---|---|
Via the Admin Interface | Using Drush | |
1 | Make database changes (e.g. change permissions) | |
2 | Create a new feature branch git checkout -b feature-branch-name | |
3 | Visit /admin/config/development/configuration/full/export |
...
and click "Export" |
| |
4 | Uncompress the .tar.gz file system downloaded, and copy the config to your config directory | drush already exported the files where they need to go |
5 | If any of your changes are covered by config split, visit /admin/config/development/configuration/config-split and export the required config | drush exports config splits at the same time |
6 | Add the config changes needed for your PR. Do not check in changes unrelated to your feature. i.e. git add permissions.yml |
...
7 | commit your changes git |
...
commit |
...
-m |
...
" |
...
Update |
...
author permissions to enable something" | |
8 | Push |
...
your changes |
...
git |
...
push origin feature-branch-name | ||
9 | Open a pull request from your feature branch |
Loading Config Changes
When You'll want to import new config changes to the database when you bring down new config changes through git, you'll want to import them to the database. To do this:
- Bring git pull the changes down
- git pull
- into your repo
- Import the configs
- Visit adminVisit /admin/config/development/configuration /full/import and click Import All
Notes
...
- or run
drush config-import
- or run
...
Have configuration directories outside of webroot.
Commit to config/staging
.
Use drush config-import to import from staging to your Sync directory.
...
- AKA
drush cim
- AKA
- If using the admin interface, and importing configuration covered by config split, visit
/admin/config/development/configuration/config-split
click the dropdown to the right of your active environment, click Import, and then Import All.