Puncte:1

Modificarile de configurare au rezultate imprevizibile

drapel nr

Am configurat divizări de configurare cu Drupal 9 și întâlnesc rezultate neașteptate.

Niciuna dintre diviziunile mele nu este marcată ca activă în configurația activă sau în configurația exportată YAML.

Vreau să setez împărțirea locală implicită setări.php și apoi folosiți setări.local.php pentru a o depăși dev, stg, prd medii.

Mediul meu de dezvoltare locală este DDEV-Local v1.17.5. Cele trei medii la distanță sunt toate configurate pe un server la distanță în AWS privat al clientului, în trei Apache VirtualHosts diferite.

Nu pot folosi variabilele de mediu pentru a diferenția dev, stg, prd medii, deoarece toate sunt pe o singură gazdă. A fost o provocare să diferențiem mediile fără variabilele de mediu obișnuite Acquia sau Pantheon.

(Notă: înțeleg dacă config_split este în afara subiectului aici, deoarece nu este un modul de bază. am creat o coadă de probleme pe Drupal.org, dar încă sper că cineva va vedea întrebarea aici și va oferi o perspectivă.)

Aceasta este anularea implicită în setări.php:

  $config['config_split.config_split.local']['status'] = TRUE;
  $config['config_split.config_split.prd']['status'] = FALS;
  $config['config_split.config_split.stg']['status'] = FALS;
  $config['config_split.config_split.dev']['status'] = FALS;

Până acum, bine. Diviziunea locală este „activă (suprascrisă)”.

Lucrurile devin ciudate când editez acest lucru pentru a activa o altă divizare în mediul meu local:

  $config['config_split.config_split.local']['status'] = FALS;
  $config['config_split.config_split.prd']['status'] = TRUE;
  $config['config_split.config_split.stg']['status'] = FALS;
  $config['config_split.config_split.dev']['status'] = FALS;

După editare setări.php (și ștergerea cache-ului, desigur) diviziunea de producție este „activă (suprascrisă)”, așa cum era de așteptat.

Din păcate, diviziunea locală este, de asemenea, „activă (suprascrisă)” în ciuda setării acesteia ['status'] = FALS;,

Lucrurile devin mai ciudate când încerc să anulez logic valorile tuturor împărțirilor:

  $config['config_split.config_split.local']['status'] = FALS;
  $config['config_split.config_split.prd']['status'] = TRUE;
  $config['config_split.config_split.stg']['status'] = TRUE;
  $config['config_split.config_split.dev']['status'] = TRUE;

Acum, diviziunea locală este încă „activ (suprascris)” în ciuda setării acestuia ['status'] = FALS;,

Diviziunile Stage și Production sunt „active (suprascrise)” pentru a se potrivi cu acestea ['status'] = TRUE;,

Și diviziunea Dev rămâne „inactivă” în ciuda setării acesteia ['status'] = TRUE;,

Ai idee ce se întâmplă aici?

Puncte:1
drapel nr

Am schimbat denumirile mașinii divizărilor (de ex., dev_split) și totul funcționează conform așteptărilor.

Prin urmare, problema a fost cauzată de acquia/blt pachet, care folosește acquia/drupal-mediu-detector pachet pentru a seta diviziunea activă pe baza variabilelor de mediu Acquia.

De cand $_ENV['AH_SITE_ENVIRONMENT'] este nesetat, diviziunea de mediu local va fi întotdeauna activă.

Nu sunt sigur de ce diviziunea Dev nu poate fi activată, dar probabil că și asta are legătură.

Aș putea elimina complet BLT din proiect, deoarece nu folosim găzduirea Acquia și, prin urmare, nu îl mai folosim pentru mult, dar am fost reticent să configurez din nou chestiile de testare automată fără toată bunătatea Robo.

În schimb, am făcut acquia/blt o dependență Composer dev, astfel încât să nu fie instalată în medii superioare. Aparent, asta nu a fost suficient - încă se încurcă cu diviziunile mele de configurare și poate avea alte efecte secundare imprevizibile.

Soluția rapidă este schimbarea numelor mașinilor pentru divizări. Probabil că renunțarea complet la BLT este o soluție mai bună pe termen lung.

Închis (funcționează conform intenției)

P.S.: Dacă proiectul tău BLT este găzduit pe Acquia, atunci detectarea mediului va funcționa corect, iar această problemă nu va apărea. Nu e de mirare că aceasta este o problemă atât de rară -- probabil că majoritatea oamenilor nu folosesc BLT în afara mediilor Acquia.

drapel za
Am avut de-a face cu BLT în ultima vreme și da, setările includ (împreună cu cele Acquia) o fac destul de confuză. În plus, dacă nu vă creați propriul detector, există doar [dev, stage, prod, ci, ode, ah_other, local] - EnvironmentDetector#getEnvironments

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.