После обновления 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).
>
> В строке 360 ConfigImportCommands.php:
>
> Импорт не выполнен по следующим причинам:
> Этот импорт пуст, и если его применить, вся ваша конфигурация будет удалена.
> поэтому был отвергнут.
>
>
Параметры конфигурации те же, что и до обновления:
$ grep -Rn '../config/по умолчанию' .
./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 переопределяет мои настройки где-то за пределами корня моего документа, но я не могу этого найти.
Местная среда Ландо с новым acquia
рецепт, так что, возможно, есть какая-то устаревшая конфигурация, которая поставляется с акли
или что-то.
Я надеюсь установить BLT 12, как только разберусь с парой последних странных ошибок в моем локальном компьютере; возможно, это поможет мне решить проблему с синхронизацией конфигурации, поскольку она поставляется со своими переопределениями конфигурации.
Это может быть связано со следующей ошибкой, о которой сообщает Статус обновления модуль перед Обновление Друпал 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:
$ lando drush ev 'print_r(\Drupal\Core\Site\Settings::get("config_sync_directory"));'
../config/по умолчанию%
$ 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 переопределяет мои настройки конфигурации.
Просто чтобы убедиться в этом, я выполнил поиск каталога конфигурации Dev в своем локальном проекте, и никаких результатов не было возвращено:
$ grep -Rn 'сайты/по умолчанию/файлы/config_315f86d0f57aa166d80058769033a13b1b4823d0/sync' .
$
В случае, если сегмент пути к каталогу общедоступных файлов был предоставлен оболочкой потока, расширением переменной или конкатенацией строк, я попытался снова, используя только идентификатор конфигурации:
$ 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')) {
require('/var/www/site-php/d9readiness/d9readiness-settings.inc');
}
Примечание. Этой конфигурации не менее двух лет. Проект действительно не называется d9готовность
(представьте, что это называется клиент-имя-проекта
).