Zaimportuj pojedynczy plik konfiguracyjny yml

22

Czy można zaimportować pojedynczy plik konfiguracyjny yml, podając jego ścieżkę?

Lub grupa plików yml zawartych w określonym module?

David Riccitelli
źródło
Możesz to zrobić, włączając moduł konfiguracji, a następnie używając pojedynczej strony importu.
Dzięki @IvanJaros, czy możesz rozwinąć komentarz do odpowiedzi ze szczegółowymi informacjami, jak włączyć moduł konfiguracji i ścieżkę do pojedynczej strony importu? Czy jest jakiś sposób na osiągnięcie takich samych rezultatów za pomocą konsoli drush lub drupal? Jeśli to zadziała, zaakceptuję odpowiedź. Twoje zdrowie!
David Riccitelli,
Myślę, że możesz umieścić plik w katalogu config / sync i po prostu uruchomić Drush Cim, zawsze używałem interfejsu użytkownika dla pojedynczego pliku konfiguracyjnego.
Spowoduje to zaimportowanie wszystkich plików z katalogu synchronizacji .
David Riccitelli

Odpowiedzi:

15

Możesz użyć

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

Twoja pomoc mówi:

$ 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
źródło
3
To świetnie, ale jeśli chcesz zaimportować jeden plik, musisz przenieść go do innego katalogu częściowego? To dziwne, prawda?
rreiss
14

Możesz zaimportować jedną konfigurację, uruchamiając następujące polecenie:

 drupal config:import:single

Jeśli próbujesz uruchomić wiele importów, możesz utworzyć dla tego łańcuch.

Dokumentacja polecenia - config: import: single

itsdarrylnorris
źródło
3
Czy istnieje również opcja drush?
Benedikt
5
Wskazówka dla użytkowników Lando / Docker - musisz podać pełną ścieżkę podczas działania w kontenerze, np. drupal config:import:single --directory="/app/config/sync" --file="foo.settings.yml"Zamiast konfigurować / synchronizować, gdy jesteś w / app - w przeciwnym razie otrzymasz [BŁĄD] Wartość nie może być pusta . (Kod źródłowy szczęście Drupal Console jest miły i łatwy do debugowania.)
William Turrell
4

Jeśli nie masz zainstalowanej konsoli Drush lub Drupal, wykonaj następujące czynności (wykonane pomyślnie w D 8.0.1):

  1. Przejdź do Administracja-> Konfiguracja-> Synchronizacja konfiguracji. Konfigurację można wyeksportować dla pojedynczego elementu lub dla całej witryny. Zrobiłem dla jednego pliku user.mail.yml. Wyeksportuj wymaganą konfigurację.
    1. Zmodyfikuj zmiany w eksportowanej konfiguracji.
    2. Zaimportuj zmodyfikowaną konfigurację
    3. Po pomyślnym zaimportowaniu upewnij się, że wyczyściłeś istniejące dane z tabel config i cache_config (Wyodrębnij zrzut bazy danych i wyszukaj słowa kluczowe konfiguracji. W ten sposób poznasz tabele, w których znajduje się pozycja).

Uwaga - zawsze wykonuj kopię zapasową.

Soumya Rajiv
źródło