Puncte:1

Erori „Importul este gol” care validează sincronizarea configurației după actualizarea de bază

drapel nr

După actualizarea Drupal 9, nu mai pot folosi sincronizarea configurației pentru a implementa configurația în mediul Acquia Cloud:

 Importați modificările de configurare listate? (da/nu) [da]:
 > > [eroare] Drupal\Core\Config\ConfigImporterException: Au existat erori la validarea sincronizării configurației.
> Acest import este gol și, dacă este aplicat, ar șterge toată configurația dvs., așa că a fost respins.în Drupal\Core\Config\ConfigImporter->validate() (linia 750 din /mnt/www/html/d9readiness/docroot/core/lib/Drupal/Core/Config/ConfigImporter.php). 
> 
> În linia 360 ConfigImportCommands.php:
>                                                                                
> Importul a eșuat din următoarele motive:                              
> Acest import este gol și, dacă este aplicat, ar șterge toată configurația dvs.  
> deci a fost respins.                                                       
>                                                                                
> 

Setările de configurare sunt aceleași care funcționau înainte de actualizare:

$ grep -Rn '../config/default' .                  
./docroot/sites/default/settings.php:258:// $config_directories['vcs'] = '../config/default';
./docroot/sites/default/settings.php:259:// $config_directories['sync'] = '../config/default';
./docroot/sites/default/settings.php:262:$settings['config_sync_directory'] = '../config/default';
./docroot/sites/default/settings.php:263:$settings['config_vcs_directory'] = '../config/default';

Bănuiesc că Acquia îmi suprascrie setările undeva în afara rădăcinii documentului, dar nu o găsesc.

Mediul local este Lando cu noul-ish acquia rețetă, deci poate că există o configurație moștenită care vine cu acli sau ceva.

Sper să instalez BLT 12 de îndată ce mă ocup de ultimele două erori ciudate în localul meu; poate că asta mă va ajuta să remediez problema de sincronizare a configurației, deoarece vine cu propriile suprascrieri de configurare.

Acest lucru poate fi legat de următoarea eroare raportată de Stare upgrade modul inainte de Upgrade Drupal 9: https://www.drupal.org/project/upgrade_status/issues/3229552#comment-14209685

ACTUALIZAȚI: prin Drupal Slack

mcdruid acum 6 ore

Suspiciunea mea este că Acquia îmi trece peste setările undeva

... probabil că nu vă răspunde direct la întrebare, dar ar trebui să puteți verifica oricare dintre setări cu, de ex.

$ drush ev 'print_r(\Drupal\Core\Site\Settings::get("config_sync_directory"));'

Am încercat acest lucru și într-adevăr confirmă că Acquia folosește o configurație diferită, care nu este în mine setări.php.

Iată rezultatul rulării acelei comenzi în localul meu și pe Acquia Cloud:

$ lando drush ev 'print_r(\Drupal\Core\Site\Settings::get("config_sync_directory"));'     
../config/default%

$ lando drush @dev ev 'print_r(\Drupal\Core\Site\Settings::get("config_sync_directory"));'
Introduceți fraza de acces pentru cheia „/var/www/.ssh/id_rsa”:
/mnt/www/html/d9readiness/docroot/sites/default/files/config_315f86d0f57aa166d80058769033a13b1b4823d0/syncConection to d9readiness.ssh.devcloud.comacquia-site

$ lando drush @test ev 'print_r(\Drupal\Core\Site\Settings::get("config_sync_directory"));'
Introduceți fraza de acces pentru cheia „/var/www/.ssh/id_rsa”: 
/mnt/www/html/d9readiness/docroot/sites/default/files/config_72c878fc6029f4e12c65fa9d1ce2afd4c3a94575/syncConnection to d9readiness.ssh.devcloud.closed.sites.com

Acest lucru demonstrează că Acquia suprascrie setările mele de configurare.

Doar pentru a verifica acest lucru, am căutat directorul de configurare Dev din proiectul meu local și nu au fost returnate rezultate:

$ grep -Rn 'sites/default/files/config_315f86d0f57aa166d80058769033a13b1b4823d0/sync' .
$

În cazul în care segmentul de cale a directorului fișierelor publice a fost furnizat de stream wrapper, extindere variabilă sau concatenare de șiruri, am încercat din nou doar cu identificatorul de configurare:

$ grep -Rn '315f86d0f57aa166d80058769033a13b1b4823d0' .
$

Niciun rezultat din nou. Această configurație vine cu siguranță dintr-un loc ciudat.

Ar putea fi asta cere aproape de sfarsitul setări.php?

// Pe Acquia Cloud, acest fișier include configurează Drupal să utilizeze corect
// bază de date în fiecare mediu de site (Dev, Stage sau Prod). Pentru a folosi asta
// settings.php pentru dezvoltare pe stația de lucru locală, setați $db_url
// (Drupal 5 sau 6) sau $baze de date (Drupal 7 sau 8) așa cum este descris în comentariile de mai sus.
dacă (fișier_există('/var/www/site-php')) {
  require('/var/www/site-php/d9readiness/d9readiness-settings.inc');
}

Notă: această configurație are cel puțin doi ani. Proiectul chiar nu se numește d9pregătirea (imaginați-vă că se numește client-proiect-nume).

Kevin avatar
drapel in
Nu am avut niciodată o problemă cu asta pe Acquia, cred că ar fi toate lucrurile enumerate între ele. BLT, Lando, ACLI... cu excepția cazului în care nu ați menționat ceva aici, cum ar fi directorul site-urilor este diferit pe telecomandă. Sunteți sigur că fișierul de setări pe care îl aveți nu este ignorat și nu își face drum prin implementare?
hotwebmatter avatar
drapel nr
@Kevin Niciodată nu am mai avut o problemă ca asta până acum pe Acquia. Nu am implementat încă BLT; mai întâi am vrut să mă asigur că am scăpat de orice configurație învechită rămasă din vechiul proiect. Tocmai am șters niște configurații Acquia Dev Desktop de la sfârșitul „settings.php” și am găsit o setări vechi care includ chiar deasupra acesteia -- vezi ultima mea actualizare de mai sus. Poate asta este problema.
hotwebmatter avatar
drapel nr
@Kevin Pentru a răspunde la întrebarea dvs. directă: da, sunt sigur că `./docroot/sites/default/settings.php` nu este ignorat și își face drum prin implementare. Îl văd pe Acquia Cloud în locația așteptată și cu conținutul așteptat. Timpul și `shasum` se potrivesc cu cele din localul meu. Toate aceste lucruri funcționau bine înainte de upgrade la Drupal 8 la Drupal 9. După examinare, nu cred că ar trebui să elimin includerea `settings.inc`. Voi depana cu înlocuiri de configurare per mediu înainte de a face altceva.
Puncte:0
drapel nr

Chiar dacă nu am reușit niciodată să-mi dau seama de unde provine vechea configurație a proiectului D8, am reușit să rezolv problema suprascriind în mod explicit configurația de la sfârșitul setări.php:

// Înlocuiți setările Acquia Dev Desktop (învechite) cu suprascrieri ale mediului Acquia Cloud.
// Notă: Aceasta este doar pentru depanare; eliminați acest cod după configurarea BLT 12.
dacă (isset($_ENV['AH_SITE_ENVIRONMENT'])) {
  comutator ($_ENV['AH_SITE_ENVIRONMENT']) {
    caz „dev”:
      // face ceva pe dev
      $settings['config_sync_directory'] = '../config/default';
      $settings['config_vcs_directory'] = '../config/default';
      pauză;
    caz „test”:
      // face ceva pe scenă
      $settings['config_sync_directory'] = '../config/default';
      $settings['config_vcs_directory'] = '../config/default';
      pauză;
    caz „prod”:
      // face ceva la prod
      // Site Factory poate necesita o valoare diferită, în funcție de
      // configurarea site-ului
      $settings['config_sync_directory'] = '../config/default';
      $settings['config_vcs_directory'] = '../config/default';
      pauză;
    cazul „ra”:
      // face ceva pe ra - necesar dacă a
      // Mediul de administrare la distanță este prezent
      $settings['config_sync_directory'] = '../config/default';
      $settings['config_vcs_directory'] = '../config/default';
      pauză;
    }
  }
  else {
  // faceți ceva pentru o aplicație care nu este găzduită de Acquia
  // (ca o instalare dev local).
  $settings['config_sync_directory'] = '../config/default';
  $settings['config_vcs_directory'] = '../config/default';
}

Am setat aceeași configurație implicită pentru toate mediile aici, doar pentru a face din nou o sincronizare de bază a config. vreau să încurcăm prin suprascrie aici.)

Kevin avatar
drapel in
Acest lucru este destul de ciudat pentru mine. Am câteva site-uri D9 pe Acquia și tot ce am la sfârșitul sets.php este singura linie care schimbă directorul de configurare. Nu folosesc deloc BLT.... așa că ar putea fi ceva în plus în amestec.
hotwebmatter avatar
drapel nr
@Kevin Recomandați să eliminați referința la fișierul include setări?

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.