Puncte:3

De ce eșuează instalarea dintr-o configurație existentă?

drapel cn

Mă chinui să instalez un site drupal dintr-o configurație existentă. Iată cele două abordări pe care le-am încercat:

OPȚIUNEA 1: Importați configurația prin schimbarea UID-ului:

  • drush cex pe site-ul existent
  • site drush:instalare pentru a instala site-ul nou
  • drush cset system.site uuid 478e7e74-fea3...... pentru a seta UUID pe site-ul nou egal cu site-ul existent
  • drush cim pe noul site

REZULTAT:

  Importul a eșuat din următoarele motive:

  Eroare neașteptată în timpul importului cu operația de ștergere pentru taxonomy.vocabulary.tags: Încercați să creați un corp de câmp care nu există pe nodul tip entitate.
  Eroare neașteptată în timpul importului cu operația de ștergere pentru shortcut.set.default: Încercați să creați un corp de câmp care nu există pe nodul tip entitate.
  Eroare neașteptată în timpul importului cu operația de ștergere pentru contact.form.personal: Încercați să creați un corp de câmp care nu există pe nodul tip entitate.

.... (Există mai multe dintre aceste erori, dar le-am eliminat aici pentru o mai bună lizibilitate)

OPȚIUNEA 2: Furnizați deja configurația existentă în timpul instalării

drush site:install --existing-config cu configurația de pe site-ul existent fiind disponibilă în directorul de configurare al site-ului nou.

REZULTAT:

Profilul selectat are o implementare hook_install() și, prin urmare, poate
nu poate fi instalat din configurare.
Puncte:3
drapel in

Cred că opțiunea 1 este mai mult o soluție hackeră decât o abordare recomandată. Aș evita-o în favoarea opțiunii 2.

Re: opțiunea 2 eșuând, mesajul de eroare este destul de clar - nu puteți utiliza --existing-config opțiune cu un profil care implementează un cârlig de instalare.

De la modificare înregistrare introducând posibilitatea de a instala din configurația existentă:

Dacă profilul implementează configurația hook_install(), instalarea nu este acceptată. Acest lucru ar putea fi abordat în #2982052: Permiteți instalarea unui cârlig de instalare în profiluri din configurație. Soluțiile posibile pentru moment sunt fie să schimbați profilul de instalare la minim, fie să urmați opțiunea 2 și să creați un profil nou care să nu implementeze cârligul.

Drupal 8: Instalați site-ul din configurația existentă descrie cum să vă schimbați instalarea pentru a utiliza profilul minim în loc de profilul dvs. actual. Spoiler: trebuie doar să faceți două actualizări la miez.extensie.yml fișier în directorul dvs. de configurare:

  1. Schimba profil valoarea cheii la minim
  2. Sub module cheie, înlocuiți cheia profilului dvs. existent cu minim. (Profilurile vor fi de obicei aproape de partea de jos a listei.)
Extect avatar
drapel cn
Mulțumesc mult! Acest lucru îmi permite cel puțin să instalez dintr-o configurație existentă. Cu toate acestea, trebuie să schimb core.extension.yml înainte de fiecare rulare de drush cim pentru ca acesta să funcționeze. Există o cale de a ocoli și asta?
sonfd avatar
drapel in
Nu ar trebui să fie necesar. Ar trebui să puteți instala site-ul cu `core.extension.yml` modificat și să vă exportați configurația (`drush cex`) după finalizarea instalării. După aceasta, ar trebui să aveți doar un site obișnuit care nu necesită tratament special.
Extect avatar
drapel cn
Am un site de dezvoltare (cu profil de instalare standard) pe care vreau să-l instalez curat în prod (ceea ce este posibil prin schimbarea core.extension.yml datorită indicii dumneavoastră). Acum, când vreau să fac o modificare de configurare în dev și să o împing la prod, aș face un `drush cex` în dev și un `drush cim` în prod, dar acest lucru nu va funcționa fără a schimba `core.extension. yml` din nou. Ce greșesc?
sonfd avatar
drapel in
După ce faceți o nouă instalare pe prod, trebuie să aduceți acea bază de date (și configurația) înapoi la instanța dvs. de dezvoltare. Se pare că încercați să faceți două instalări noi separate (una pe dev și apoi una pe prod) și apoi să implementați cod între ele ca și cum ar fi același site. AFAIK, acest lucru nu este acceptat.
Extect avatar
drapel cn
Bine. Mulțumiri! Am vrut doar să scap de tot conținutul meu de testare în dev făcând o nouă instalare pentru prod. Probabil greșeala mea a fost să nu sincronizez cu două imediat.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.