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?