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?


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

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


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ą.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.