Importieren Sie eine einzelne yml-Konfigurationsdatei

21

Ist es möglich, eine einzelne yml-Konfigurationsdatei durch Angabe ihres Pfades zu importieren?

Oder eine Gruppe von yml-Dateien, die in einem bestimmten Modul enthalten sind?

David Riccitelli
quelle
Sie können dies tun, indem Sie das Konfigurationsmodul aktivieren und dann die einzelne Importseite verwenden.
Danke @IvanJaros, können Sie den Kommentar zu einer Antwort mit Details zum Aktivieren des Konfigurationsmoduls und dem Pfad zur einzelnen Importseite erweitern? Gibt es eine Möglichkeit, mit der Drush- oder Drupal-Konsole dieselben Ergebnisse zu erzielen? Wenn es funktioniert, akzeptiere ich die Antwort. Prost!
David Riccitelli
Ich vermute, Sie können die Datei in das Verzeichnis config / sync legen und einfach drush cim ausführen. Ich habe immer die Benutzeroberfläche für eine einzelne Konfigurationsdatei verwendet.
Das würde alle Dateien im Synchronisierungsverzeichnis importieren .
David Riccitelli

Antworten:

14

Sie können verwenden

$ drush cim --partial --source=only-few-configs/

Ihre Hilfe sagt:

$ drush cim --help
Import config from a config directory.

Examples:
 drush config-import --partial             Import configuration; do not remove missing configuration.

Arguments:
 label                                     A config directory label (i.e. a key in $config_directories array in 
                                           settings.php). Defaults to 'sync'

Options:
 --partial                                 Allows for partial config imports from the source directory. Only updates and new 
                                           configs will be processed with this flag (missing configs will not be deleted).   
 --preview=<list>                          Format for displaying proposed changes. Recognized values: list, diff. Defaults   
                                           to list.                                                                          
 --source                                  An arbitrary directory that holds the configuration files. An alternative to      
                                           label argument

Aliases: cim
rpayanm
quelle
3
Das ist toll, aber wenn Sie eine Datei importieren möchten, müssen Sie sie in ein anderes Teilverzeichnis verschieben? Das ist doch komisch, oder?
Reiss
13

Sie können eine Konfiguration importieren, indem Sie den folgenden Befehl ausführen:

 drupal config:import:single

Wenn Sie versuchen, mehrere Importe auszuführen, können Sie eine Kette dafür erstellen.

Befehlsdokumentation - config: import: single

itsdarrylnorris
quelle
2
Gibt es auch eine Option für Drush?
Benedikt
4
Tipp für Lando / Docker-Benutzer - Sie müssen den vollständigen Pfad angeben, wenn Sie in einem Container ausgeführt werden, z. B. drupal config:import:single --directory="/app/config/sync" --file="foo.settings.yml"statt nur config / sync, wenn Sie sich in / app befinden. Andernfalls wird [ERROR] angezeigt. Der Wert darf nicht leer sein . (Zum Glück ist der Quellcode von Drupal Console nett und leicht zu debuggen.)
William Turrell
3

Falls Sie keine Drush- oder Drupal-Konsole installiert haben, befolgen Sie bitte die folgenden Schritte (erfolgreich in D 8.0.1 ausgeführt):

  1. Gehen Sie zu Administration-> Konfiguration-> Konfigurationssynchronisation. Die Konfiguration kann für ein einzelnes Element oder für die gesamte Site exportiert werden. Ich habe für eine einzelne user.mail.yml-Datei. Exportieren Sie die gewünschte Konfiguration.
    1. Ändern Sie die Änderungen an der exportierten Konfiguration.
    2. Importieren Sie die geänderte Konfiguration
    3. Stellen Sie nach dem erfolgreichen Import sicher, dass Sie die vorhandenen Daten aus den Tabellen config und cache_config löschen.

Hinweis - Erstellen Sie immer eine Sicherungskopie.

Soumya Rajiv
quelle