Score:1

ข้อผิดพลาด "การนำเข้าว่างเปล่า" ในการตรวจสอบการซิงโครไนซ์การกำหนดค่าหลังจากการอัปเกรดหลัก

ธง nr

หลังจากอัปเกรด Drupal 9 ฉันไม่สามารถใช้การซิงโครไนซ์การกำหนดค่าเพื่อปรับใช้การกำหนดค่ากับสภาพแวดล้อม Acquia Cloud ได้อีกต่อไป:

 นำเข้าการเปลี่ยนแปลงการกำหนดค่าที่ระบุไว้หรือไม่ (ใช่/ไม่ใช่) [ใช่]:
 > > [ข้อผิดพลาด] Drupal\Core\Config\ConfigImporterException: มีข้อผิดพลาดในการตรวจสอบการซิงโครไนซ์การกำหนดค่า
> การนำเข้านี้ว่างเปล่า และหากนำไปใช้จะเป็นการลบการกำหนดค่าทั้งหมดของคุณ ดังนั้นจึงถูกปฏิเสธใน Drupal\Core\Config\ConfigImporter->validate() (บรรทัดที่ 750 ของ /mnt/www/html/d9readiness/docroot/core/lib/Drupal/Core/Config/ConfigImporter.php) 
> 
> ใน ConfigImportCommands.php บรรทัดที่ 360:
>                                                                                
> การนำเข้าล้มเหลวเนื่องจากสาเหตุต่อไปนี้:                              
> การนำเข้านี้ว่างเปล่า และหากนำไปใช้จะเป็นการลบการกำหนดค่าทั้งหมดของคุณ  
> จึงถูกปฏิเสธ                                                       
>                                                                                
> 

การตั้งค่าคอนฟิกูเรชันเป็นแบบเดียวกับที่ใช้ก่อนการอัปเกรด:

$ 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';

ความสงสัยของฉันคือ Acquia กำลังแทนที่การตั้งค่าของฉันที่ใดที่หนึ่งนอกรูทเอกสารของฉัน แต่ฉันหาไม่พบ

สภาพแวดล้อมในท้องถิ่นคือ แลนโด้ กับของใหม่ อะควา สูตรดังนั้นอาจมีการกำหนดค่าดั้งเดิมที่มาพร้อมกับ กรดไหลย้อน หรือบางสิ่งบางอย่าง.

ฉันหวังว่าจะติดตั้ง BLT 12 ทันทีที่ฉันจัดการกับข้อผิดพลาดแปลก ๆ สองสามข้อสุดท้ายในเครื่องของฉัน บางทีนั่นอาจช่วยฉันแก้ไขปัญหาการซิงค์การกำหนดค่าได้เนื่องจากมาพร้อมกับการแทนที่การกำหนดค่าของตัวเอง

ซึ่งอาจเกี่ยวข้องกับข้อผิดพลาดต่อไปนี้ที่รายงานโดย สถานะการอัพเกรด โมดูล ก่อน อัพเกรด Drupal 9: https://www.drupal.org/project/upgrade_status/issues/3229552#comment-14209685

อัปเดต: ผ่าน Drupal Slack

แม็คดรูอิด 6 ชั่วโมงที่แล้ว

ความสงสัยของฉันคือ Acquia กำลังแทนที่การตั้งค่าของฉันที่ไหนสักแห่ง

...อาจจะไม่ได้ตอบคำถามของคุณโดยตรง แต่คุณควรตรวจสอบการตั้งค่าใดๆ เช่น

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

ฉันลองสิ่งนี้แล้วและเป็นการยืนยันว่า Acquia ใช้การกำหนดค่าอื่นซึ่งไม่ได้อยู่ในของฉัน การตั้งค่า.php.

นี่คือผลลัพธ์จากการเรียกใช้คำสั่งนั้นในเครื่องของฉันและบน 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"));'
ป้อนข้อความรหัสผ่านสำหรับคีย์ '/var/www/.ssh/id_rsa':
/mnt/www/html/d9readiness/docroot/sites/default/files/config_315f86d0f57aa166d80058769033a13b1b4823d0/syncการเชื่อมต่อไปยัง d9readiness.ssh.devcloud.acquia-sites.com ปิด

$ lando drush @test ev 'print_r(\Drupal\Core\Site\Settings::get("config_sync_directory"));'
ป้อนข้อความรหัสผ่านสำหรับคีย์ '/var/www/.ssh/id_rsa': 
/mnt/www/html/d9readiness/docroot/sites/default/files/config_72c878fc6029f4e12c65fa9d1ce2afd4c3a94575/syncการเชื่อมต่อไปยัง d9readiness.ssh.devcloud.acquia-sites.com ปิด

นี่เป็นการพิสูจน์ว่า Acquia กำลังลบล้างการตั้งค่าการกำหนดค่าของฉัน

เพื่อตรวจสอบสิ่งนี้ ฉัน grepped สำหรับไดเร็กทอรีการกำหนดค่า Dev ในโครงการในเครื่องของฉันและไม่มีการส่งคืนผลลัพธ์:

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

ในกรณีที่ส่วนเส้นทางไดเร็กทอรีของไฟล์สาธารณะถูกจัดเตรียมโดย stream wrapper การขยายตัวแปร หรือการต่อสตริง ฉันลองอีกครั้งโดยใช้ตัวระบุการกำหนดค่าเท่านั้น:

$ grep -Rn '315f86d0f57aa166d80058769033a13b1b4823d0' .
$

ไม่มีผลลัพธ์อีกครั้ง การกำหนดค่านี้มาจากสถานที่แปลก ๆ แน่นอน

อาจเป็นสิ่งนี้ จำเป็นต้อง ใกล้จบ การตั้งค่า.php?

// บน Acquia Cloud รวมถึงไฟล์กำหนดค่า Drupal ให้ใช้ไฟล์ที่ถูกต้อง
// ฐานข้อมูลในแต่ละสภาพแวดล้อมของไซต์ (Dev, Stage หรือ Prod) เพื่อใช้สิ่งนี้
// settings.php สำหรับการพัฒนาบนเวิร์กสเตชันโลคัลของคุณ ตั้งค่า $db_url
// (Drupal 5 หรือ 6) หรือ $databases (Drupal 7 หรือ 8) ตามที่อธิบายไว้ในความคิดเห็นด้านบน
ถ้า (file_exists ('/var/www/site-php')) {
  ต้องการ ('/var/www/site-php/d9readiness/d9readiness-settings.inc');
}

หมายเหตุ: การกำหนดค่านี้มีอายุอย่างน้อยสองปี เรียกโครงการนี้ไม่ถูกจริงๆ d9ความพร้อม (นึกว่าเรียกว่า ชื่อโครงการลูกค้า).

Kevin avatar
in flag
ฉันไม่เคยมีปัญหากับสิ่งนี้ใน Acquia ฉันเดาว่าทุกอย่างในรายการอยู่ระหว่างนั้น BLT, Lando, ACLI... เว้นแต่ว่าคุณไม่ได้พูดถึงบางอย่างที่นี่ เช่น ไดเร็กทอรีของไซต์จะแตกต่างกันในรีโมต คุณแน่ใจหรือไม่ว่าไฟล์การตั้งค่าที่คุณมีไม่ได้ถูกละเลยคอมไพล์และไม่ได้ผ่านการปรับใช้
hotwebmatter avatar
nr flag
@Kevin ฉันไม่เคยมีปัญหาแบบนี้มาก่อนใน Acquia เช่นกัน ฉันยังไม่ได้ใช้ BLT; ก่อนอื่นฉันต้องการให้แน่ใจว่าฉันได้กำจัดการกำหนดค่าที่ล้าสมัยซึ่งหลงเหลือจากโครงการเก่า ฉันเพิ่งลบการกำหนดค่า Acquia Dev Desktop บางส่วนออกจากส่วนท้ายของ `settings.php` และพบว่ามีการตั้งค่าเก่าอยู่ด้านบนนั้น -- ดูการอัปเดตล่าสุดของฉันด้านบน บางทีนี่อาจเป็นปัญหา
hotwebmatter avatar
nr flag
@Kevin เพื่อตอบคำถามโดยตรงของคุณ: ใช่ฉันแน่ใจว่า `./docroot/sites/default/settings.php` ไม่ถูกละเว้น git และกำลังดำเนินการผ่านการปรับใช้ ฉันเห็นบน Acquia Cloud ในตำแหน่งที่คาดไว้และเนื้อหาที่คาดไว้ การประทับเวลาและ `shasum` ตรงกับเวลาท้องถิ่นของฉัน ทั้งหมดนี้ทำงานได้ดีก่อนที่จะอัปเกรด Drupal 8 เป็น Drupal 9 แบบแทนที่ หลังจากตรวจสอบแล้ว ฉันไม่คิดว่าควรลบ `settings.inc` include ออก ฉันจะแก้ปัญหาด้วยการแทนที่การกำหนดค่าต่อสภาพแวดล้อมก่อนที่ฉันจะทำอะไรอย่างอื่น
Score:0
ธง nr

แม้ว่าฉันจะไม่สามารถทราบได้ว่าการกำหนดค่าโปรเจ็กต์ D8 เก่ามาจากไหน แต่ฉันก็สามารถแก้ไขปัญหาได้โดยการแทนที่การกำหนดค่าอย่างชัดเจนที่ส่วนท้ายสุดของ การตั้งค่า.php:

// แทนที่การตั้งค่า Acquia Dev Desktop (เลิกใช้แล้ว) ด้วยการแทนที่สภาพแวดล้อม Acquia Cloud
// หมายเหตุ: ใช้สำหรับการแก้ไขปัญหาเท่านั้น ลบรหัสนี้หลังจากกำหนดค่า BLT 12
ถ้า (isset($_ENV['AH_SITE_ENVIRONMENT'])) {
  สวิตช์ ($_ENV['AH_SITE_ENVIRONMENT']) {
    กรณี 'พัฒนา':
      // ทำบางอย่างบน dev
      $settings['config_sync_directory'] = '../config/default';
      $settings['config_vcs_directory'] = '../config/default';
      หยุดพัก;
    กรณี 'ทดสอบ':
      // ทำอะไรบางอย่างบนเวที
      $settings['config_sync_directory'] = '../config/default';
      $settings['config_vcs_directory'] = '../config/default';
      หยุดพัก;
    กรณี 'ผลิตภัณฑ์':
      // ทำบางอย่างกับผลิตภัณฑ์
      // โรงงานไซต์อาจต้องการค่าที่แตกต่างกันขึ้นอยู่กับ
      // ในการกำหนดค่าไซต์
      $settings['config_sync_directory'] = '../config/default';
      $settings['config_vcs_directory'] = '../config/default';
      หยุดพัก;
    กรณี 'รา':
      // ทำบางอย่างกับ ra - จำเป็น ถ้า
      // มีสภาพแวดล้อมการดูแลระบบระยะไกลอยู่
      $settings['config_sync_directory'] = '../config/default';
      $settings['config_vcs_directory'] = '../config/default';
      หยุดพัก;
    }
  }
  อื่น {
  // ทำบางอย่างสำหรับแอปพลิเคชันที่ไม่ได้โฮสต์โดย Acquia
  // (เหมือนการติดตั้ง dev ในเครื่อง)
  $settings['config_sync_directory'] = '../config/default';
  $settings['config_vcs_directory'] = '../config/default';
}

ฉันได้ตั้งค่าเริ่มต้นเดียวกันสำหรับทุกสภาพแวดล้อมที่นี่เพื่อให้การซิงค์การกำหนดค่าพื้นฐานทำงานอีกครั้ง แต่ความตั้งใจของฉันคือลบรหัสนี้หลังจากตั้งค่า BLT 12 (BLT มีการแทนที่ของตัวเองในตำแหน่งต่างๆ ซึ่งฉันไม่ อยากป่วนด้วยการกดทับที่นี่)

Kevin avatar
in flag
นี่ค่อนข้างแปลกสำหรับฉัน ฉันมีไซต์ D9 สองสามไซต์ใน Acquia และทั้งหมดที่ฉันมีในตอนท้ายของ settings.php คือบรรทัดเดียวที่เปลี่ยนไดเร็กทอรีการกำหนดค่า ฉันไม่ได้ใช้ BLT เลย .... ดังนั้นอาจมีบางอย่างเพิ่มเติมในการผสม
hotwebmatter avatar
nr flag
@Kevin คุณแนะนำให้ลบการอ้างอิงถึงไฟล์รวมการตั้งค่าหรือไม่

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา