le 08/01/2021 - merci Christophe Espiau

Environnement : composer, php7.2, drush 10.3.6

Tuto vidéo : https://www.youtube.com/watch?v=qy_nq3_sbyM&t=1250s&ab_channel=KevinGautreau

Installation de config_split :

composer require drupal/config_split
drush en config_split

Création d'un environnement de config "local"

Pour commencer, on va créer un nouvel environnement de configuration que l'on appellera "local" sur l'interface /admin/config/development/configuration/config-split

Dans l'interface, il faudra à minima :

  • donner un label, par exemple "local"
  • renseigner le champ "folder" (ou répertoire en français), par exemple : ../config/local
  • décocher la cas "active" car se sera dans le fichier settings que l'on indiquera si cet environnement de config est actif
  • dans la rubrique "complete split", choisir le module "devel", cela indique que ce module ne sera actif que dans cette config
  • valider

Créer le répertoire local 

mkdir config/local

Première installation sur le serveur de prod

  1. git pull
  2. composer install
  3. installer le site drupal classiquement via l'interface
  4. dans le fichier settings.php, ajouter :
    $settings['config_sync_directory'] = '../config/sync'; // attention, cette ligne est peut-être déjà existante
    	$config['config_split.config_split.local']['status'] = FALSE;
    	$config['config_split.config_split.staging']['status'] = FALSE;
    	$config['config_split.config_split.prod']['status'] = TRUE;
  5. faites un "dump" de votre base de donnée locale (drush sql-dump > votrebase.sql) puis importez la en prod : drush sql-cli < votrebase.sql sans oublier d'avoir préalablement supprimer les données de la base du serveur de prod (drush sql-drop)
  6. drush cr
  7. vérifier que la config en base de données n'est pas celle des fichiers avec drush cst
  8. drush cim

settings.php

Dans le fichier settings.php, ajouter :

$config['config_split.config_split.local']['status'] = TRUE;
$config['config_split.config_split.staging']['status'] = FALSE;
$config['config_split.config_split.prod']['status'] = FALSE;

Commandes drush 

drush cex (pour config export)
drush cim(pour config import)
drush cst (pour config status)

Voir les différences entre configurations (bd vs code)

admin/config/development/configuration