Importați un singur fișier de configurare yml (Drupal, 8, Configurare)

David Riccitelli a intrebat.

Este posibil să importați un singur fișier de configurare prin specificarea căii acestuia sau un grup de fișiere Yaml conținute într-un anumit modul?

Comentarii

  • Se poate prin activarea modulului de configurare și apoi prin utilizarea paginii de import unic. – user21641
  • Mulțumesc @IvanJaros, puteți extinde comentariul la un răspuns cu detalii despre cum să activați modulul de configurare și calea către pagina de import unic? Există vreo modalitate de a obține aceleași rezultate cu drush sau consola drupal? Dacă funcționează, voi accepta răspunsul. Salutări! –  > Por David Riccitelli.
  • cred că puteți pune fișierul în directorul config/sync și doar să rulați drush cim, ive întotdeauna folosit ui pentru un singur fișier de configurare. – user21641
  • Acest lucru ar importa toate fișierele din directorul sync director. –  > Por David Riccitelli.
3 răspunsuri
rpayanm

Puteți utiliza

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

Ajutorul tău spune:

$ 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

Comentarii

  • Este minunat, dar dacă doriți să importați un fișier trebuie să îl mutați într-un alt director parțial? Este ciudat, nu-i așa? –  > Por rreiss.
  • Dacă se execută în Lando/Docker, prefixați calea directorului cu /app/ (așa cum se sugerează în răspunsul la Drupal Console). –  > Por colan.
  • @rreiss de acord, la fix. +1 Pare un alt exemplu de o utilitate evidentă care este trecută cu vederea și o detasare a realității creatorilor acestor instrumente de ceea ce au nevoie oamenii. –  > Por therobyouknow.
  • Am venit aici pentru că nu pot fi sigur că core.extension.yml rulează înainte ca cealaltă configurație care depinde de ea să ruleze. Continui să primesc erori despre PlugIns (adică modulele Drupal contrib) care nu există. Așadar, vreau să import core.extension.yml mai întâi, de unde și nevoia de a importa doar acest fișier. –  > Por therobyouknow.
  • De fapt, nu cred că am nevoie de această soluție în acest răspuns, dar mulțumesc oricum, e bine de știut! Am reușit să pun fișierul de configurare într-un director separat și să execut această comandă. Problema mea – ( Unable to install the … … module since it does not exist.) – a fost rezolvată aici de o altă soluție: drupal.org/project/drupal/issues/3100026#comment-13800827 –  > Por therobyouknow.
itsdarrylnorris

Puteți importa o singură configurație prin rularea următoarei comenzi:

 drupal config:import:single

Dacă încercați să executați mai multe importuri, puteți crea un lanț pentru aceasta.

Documentația comenzii – config:import:single

Comentarii

  • Există o opțiune și pentru drush? –  > Por Benedikt.
  • Sfat pentru utilizatorii Lando/Docker – trebuie să specificați calea completă atunci când rulați într-un container, de ex. drupal config:import:single --directory="/app/config/sync" --file="foo.settings.yml", , mai degrabă decât doar config/sync atunci când vă aflați în /app – altfel veți obține [ERROR] Valoarea nu poate fi goală. (Din fericire, codul sursă al consolei Drupal este frumos și ușor de depanat).  > Por William Turrell.
  • Acest lucru este fantastic. Rețineți că nu mi-a plăcut să lucreze pentru mine folosind lando, a trebuit să lando ssh so the machine first și apoi să o rulați nativ. –  > Por Christian.
Soumya Rajiv

În cazul în care nu aveți instalat Drush sau consola Drupal, vă rugăm să utilizați următorii pași (executați cu succes în D 8.0.1):

  1. Mergeți la Administration->Configuration->Configuration Synchronization. Configurația poate fi exportată pentru un singur element sau pentru întregul site. Eu am făcut-o pentru un singur fișier user.mail.yml. Exportați configurația necesară.
    1. Modificați modificările în configurația exportată.
    2. Importați configurația modificată.
    3. Odată ce importul a avut succes, asigurați-vă că ștergeți datele existente din tabelele config și cache_config(Extrageți o copie de rezervă a bazei de date și căutați cuvintele cheie ale configurației. În acest fel veți ști care sunt tabelele în care este prezentă intrarea).

Notă – Faceți întotdeauna o copie de rezervă.