Entity Staging ou comment importer des contenus sur différents environements

Entity Staging est un module qui permet exporter des types d'entités (contenus, commentaires, users, blocks...).

Ce module est encore en développement, mais je lui promet un avenir prometteurs

Un exemple de cas d'utilisation

Un webmaster à besoin de faire une refonte de son site. Pour cela il voudrait pouvoir disposer de tout ses contenus sur son site de test.

En mode mono site, on pourrait éventuellement copier la base de données, ce qui est pas propre.

Mais quid d'un site sur en mode multisites ?  copier la base de données + modifier les chemins dans la base ? beurk !

Entity Staging à la solution :)

Installation

  • Installation du module via composer sur les 2 environements
composer require drupal/entity_staging
  • Activation du module via drush
drush en entity_staging -y
  • Configurer le module

Renseignez les entités à exporter ainsi que le dossier d'export dans admin/config/system/content-staging

Exporter la configuration du site de prod drupal via drush

drush cex --destination=/home/drupal/site_config/
  • Importer la conf sur la machine de test
drush config-import --source=/home/user/site_config/
  • Exporter les contenus sur le serveur de prod et copier le sur la machine de test (par default ils sont à l'extérieur du dossier drupal (../staging) )
drush export-content
  • Sur la machine de test mettre à jours là configuration
drush update-migration-config
  • Et enfin créer le dossier staging et importer les contenus
drush mi --group=entity_staging