Điểm:1

Lỗi "Nhập trống" xác thực đồng bộ hóa cấu hình sau khi nâng cấp lõi

lá cờ nr

Sau khi nâng cấp Drupal 9, tôi không thể sử dụng đồng bộ hóa cấu hình để triển khai cấu hình cho môi trường Acquia Cloud nữa:

 Nhập các thay đổi cấu hình được liệt kê? (có/không) [có]:
 > > [lỗi] Drupal\Core\Config\ConfigImporterException: Đã xảy ra lỗi khi xác thực đồng bộ hóa cấu hình.
> Quá trình nhập này trống và nếu được áp dụng sẽ xóa tất cả cấu hình của bạn, vì vậy đã bị từ chối.trong Drupal\Core\Config\ConfigImporter->validate() (dòng 750 của /mnt/www/html/d9readiness/docroot/core/lib/Drupal/Core/Config/ConfigImporter.php). 
> 
> Trong ConfigImportCommands.php dòng 360:
>                                                                                
> Quá trình nhập không thành công do những lý do sau:                              
> Quá trình nhập này trống và nếu được áp dụng sẽ xóa tất cả cấu hình của bạn,  
> vì vậy đã bị từ chối.                                                       
>                                                                                
> 

Cài đặt cấu hình giống với cài đặt đã hoạt động trước khi nâng cấp:

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

Tôi nghi ngờ rằng Acquia đang ghi đè cài đặt của tôi ở đâu đó bên ngoài thư mục gốc tài liệu của tôi, nhưng tôi không thể tìm thấy nó.

Môi trường cục bộ là Lando với cái mới bằng lòng công thức, vì vậy có lẽ có một số cấu hình kế thừa đi kèm với acli hoặc một cái gì đó.

Tôi hy vọng sẽ cài đặt BLT 12 ngay sau khi tôi xử lý một số lỗi kỳ lạ cuối cùng tại địa phương của mình; có lẽ điều đó sẽ giúp tôi khắc phục sự cố đồng bộ hóa cấu hình vì nó đi kèm với phần ghi đè cấu hình của chính nó.

Điều này có thể liên quan đến lỗi sau được báo cáo bởi Trạng thái nâng cấp mô-đun trước Nâng cấp Drupal 9: https://www.drupal.org/project/upgrade_status/issues/3229552#comment-14209685

CẬP NHẬT: thông qua Drupal Slack

mcdruid 6 giờ trước

Tôi nghi ngờ rằng Acquia đang ghi đè cài đặt của tôi ở đâu đó

...có thể không trả lời trực tiếp câu hỏi của bạn, nhưng bạn sẽ có thể kiểm tra bất kỳ cài đặt nào bằng ví dụ:.

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

Tôi đã thử điều này và thực sự nó xác nhận rằng Acquia đang sử dụng cấu hình khác không có trong cấu hình của tôi. cài đặt.php.

Đây là kết quả từ việc chạy lệnh đó trong cục bộ của tôi và trên 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"));'
Nhập cụm mật khẩu cho khóa '/var/www/.ssh/id_rsa':
/mnt/www/html/d9readiness/docroot/sites/default/files/config_315f86d0f57aa166d80058769033a13b1b4823d0/syncKết nối với d9readiness.ssh.devcloud.acquia-sites.com đã đóng.

$ lando drush @test ev 'print_r(\Drupal\Core\Site\Settings::get("config_sync_directory"));'
Nhập cụm mật khẩu cho khóa '/var/www/.ssh/id_rsa': 
/mnt/www/html/d9readiness/docroot/sites/default/files/config_72c878fc6029f4e12c65fa9d1ce2afd4c3a94575/syncKết nối với d9readiness.ssh.devcloud.acquia-sites.com đã đóng.

Điều này chứng tỏ rằng Acquia đang ghi đè cài đặt cấu hình của tôi.

Để xác minh điều này, tôi đã tìm kiếm thư mục cấu hình Dev trong dự án cục bộ của mình và không có kết quả nào được trả về:

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

Trong trường hợp đoạn đường dẫn thư mục tệp công khai được cung cấp bởi trình bao bọc luồng, mở rộng biến hoặc nối chuỗi, tôi đã thử lại chỉ với mã định danh cấu hình:

$ grep -Rn '315f86d0f57aa166d80058769033a13b1b4823d0' .
$

Lại không có kết quả. Chắc chắn cấu hình này đến từ một nơi nào đó kỳ lạ.

Nó có thể là điều này yêu cầu gần cuối cài đặt.php?

// Trên Acquia Cloud, tệp này bao gồm cấu hình Drupal để sử dụng đúng
// cơ sở dữ liệu trong từng môi trường trang web (Dev, Stage hoặc Prod). Để sử dụng cái này
// settings.php để phát triển trên máy trạm cục bộ của bạn, đặt $db_url
// (Drupal 5 hoặc 6) hoặc $databases (Drupal 7 hoặc 8) như được mô tả trong các nhận xét ở trên.
if (file_exists('/var/www/site-php')) {
  yêu cầu('/var/www/site-php/d9readiness/d9readiness-settings.inc');
}

Lưu ý: Cấu hình này ít nhất hai năm tuổi. Dự án thực sự không được gọi là d9sẵn sàng (hãy tưởng tượng nó được gọi là khách hàng-dự án-tên).

Kevin avatar
lá cờ in
Tôi chưa bao giờ gặp vấn đề với điều này trên Acquia, tôi đoán là tất cả những thứ được liệt kê ở giữa. BLT, Lando, ACLI... trừ khi bạn chưa đề cập đến điều gì đó ở đây như thư mục trang web khác trên điều khiển từ xa. Bạn có chắc chắn tệp cài đặt bạn có không bị git bỏ qua và không được triển khai không?
hotwebmatter avatar
lá cờ nr
@Kevin Tôi cũng chưa bao giờ gặp sự cố như thế này trên Acquia. Tôi chưa triển khai BLT; đầu tiên tôi muốn đảm bảo rằng tôi đã loại bỏ bất kỳ cấu hình lỗi thời nào còn sót lại từ dự án cũ. Tôi vừa xóa một số cấu hình Acquia Dev Desktop ở cuối `settings.php` và tìm thấy một cài đặt cũ bao gồm ngay bên trên -- xem bản cập nhật mới nhất của tôi ở trên. Có lẽ đây là vấn đề.
hotwebmatter avatar
lá cờ nr
@Kevin Để trả lời câu hỏi trực tiếp của bạn: vâng, tôi chắc chắn rằng `./docroot/sites/default/settings.php` không bị git bỏ qua và nó đang được triển khai. Tôi thấy nó trên Acquia Cloud ở vị trí dự kiến ​​và với nội dung dự kiến. Dấu thời gian và `shasum` khớp với dấu thời gian ở địa phương của tôi. Tất cả những thứ này đều hoạt động tốt trước khi nâng cấp tại chỗ Drupal 8 lên Drupal 9. Sau khi xem xét, tôi không nghĩ rằng mình nên xóa phần bao gồm `settings.inc`. Tôi sẽ khắc phục sự cố bằng cách ghi đè cấu hình theo môi trường trước khi làm bất kỳ điều gì khác.
Điểm:0
lá cờ nr

Mặc dù tôi không bao giờ có thể tìm ra cấu hình dự án D8 cũ đến từ đâu, nhưng tôi đã có thể giải quyết vấn đề bằng cách ghi đè rõ ràng cấu hình ở cuối cài đặt.php:

// Thay thế cài đặt Acquia Dev Desktop (không dùng nữa) bằng ghi đè môi trường Acquia Cloud.
// Lưu ý: Đây chỉ là để khắc phục sự cố; xóa mã này sau khi định cấu hình BLT 12.
if (isset($_ENV['AH_SITE_ENVIRONMENT'])) {
  công tắc ($_ENV['AH_SITE_ENVIRONMENT']) {
    trường hợp 'nhà phát triển':
      // làm gì đó trên dev
      $settings['config_sync_directory'] = '../config/default';
      $settings['config_vcs_directory'] = '../config/default';
      nghỉ;
    trường hợp 'thử nghiệm':
      // làm gì đó trên dàn dựng
      $settings['config_sync_directory'] = '../config/default';
      $settings['config_vcs_directory'] = '../config/default';
      nghỉ;
    trường hợp 'sản phẩm':
      // làm gì đó trên prod
      // Site Factory có thể yêu cầu một giá trị khác tùy thuộc vào
      // trên cấu hình trang web
      $settings['config_sync_directory'] = '../config/default';
      $settings['config_vcs_directory'] = '../config/default';
      nghỉ;
    trường hợp 'ra':
      // làm gì đó trên ra - cần thiết nếu a
      // Có môi trường Quản trị từ xa
      $settings['config_sync_directory'] = '../config/default';
      $settings['config_vcs_directory'] = '../config/default';
      nghỉ;
    }
  }
  khác {
  // làm điều gì đó cho ứng dụng không được lưu trữ trên máy chủ Acquia
  // (giống như cài đặt dev cục bộ).
  $settings['config_sync_directory'] = '../config/default';
  $settings['config_vcs_directory'] = '../config/default';
}

Tôi đã đặt cùng một cấu hình mặc định cho tất cả các môi trường ở đây chỉ để đồng bộ hóa cấu hình cơ bản hoạt động trở lại, nhưng mục đích của tôi là xóa mã này sau khi thiết lập BLT 12. (BLT có các phần ghi đè riêng ở các vị trí khác nhau mà tôi không muốn gây rối bằng cách ghi đè lên đây.)

Kevin avatar
lá cờ in
Điều này là khá kỳ lạ với tôi. Tôi có một vài trang web D9 trên Acquia và tất cả những gì tôi có ở cuối settings.php là một dòng thay đổi thư mục cấu hình. Tôi hoàn toàn không sử dụng BLT.... vì vậy có thể có thêm thứ gì đó trong hỗn hợp.
hotwebmatter avatar
lá cờ nr
@Kevin Bạn có khuyên bạn nên xóa tham chiếu đến tệp bao gồm cài đặt không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.