Inhaltsverzeichnis

Drupal 8/9 aus vorhandener Konfiguration installieren

Seit Drupal 8.6 wird kein zusätzliches Modul (wie etwa config_installer mehr benötigt), wenn Drupal auf Basis einer bestehenden (exportierten) Konfiguration installiert werden soll.
Dies ist zum Beispiel hilfreich, wenn bei einem Projekt kein Datenbank Dump ausgetauscht werden soll, sondern alle Entwickler ihre Instanz über eine frische Drupal Installation aufsetzen oder für das Ausführen von automatischen Tests.

Drupal schaut bei der Installation an zwei Orten, ob eine Konfiguration vorhanden ist:

Drush

Drush unterstützt ab Version 9.4 auch die direkte Installation aus vorhandener Konfiguration: drush site:install --existing-config. Auch hier muss der Pfad zu der Konfiguration in der settings.php vorab gesetzt sein: $settings['config_sync_directory']

Es gibt bei der Installation über Drush jedoch die Einschränkung, dass die Konfiguration auf dem „minimal“ Installationsprofil basiert. Ansonsten kommt es zu der Fehlermeldung:

Einschränkung hinsichtlich hook_install()

Derzeit kann eine neue Drupal Installation aus einer vorhanden Konfiguration nur installiert werden, wenn das verwendete Installationsprofil keinen hook_install() verwendet. Beispielsweise benutzt das „standard“ Profil diesen Hook, weshalb es hier zu einer Fehlermeldung kommt, wenn mit dieser Konfiguration eine Installation durchgeführt wird:

Configuration install: standard
The selected profile has a hook_install() implementation and therefore can not be installed from configuration.

Die einfachste Lösung dies zu beheben ist es, die core.extension.yml anzupassen und hier ein anderes Installationsprofil zu verwenden (welches ohne hook_install() auskommt):

module:
  [...]
  views: 10
  standard: 1000
profile: standard
core:
  _default_config_hash: [...]

wird geändert zu:

module:
  [...]
  views: 10
  minimal: 1000
profile: minimal
core:
  _default_config_hash: [...]

Diese Einschränkung wird möglicherweise mit den nächsten Drupal Versionen entfallen: Allow an install hook in profiles installing from configuration