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
).