Рейтинг: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). 
> 
> В строке 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готовность (представьте, что это называется клиент-имя-проекта).

Kevin avatar
флаг in
У меня никогда не было проблем с этим на Acquia, я думаю, это все, что перечислено между ними. BLT, Lando, ACLI... если вы не упомянули здесь что-то вроде каталога сайтов на удаленном компьютере. Вы уверены, что файл настроек, который у вас есть, не игнорируется git и не проходит через развертывание?
hotwebmatter avatar
флаг nr
@Kevin У меня никогда не было такой проблемы с Acquia. Я еще не внедрил BLT; сначала я хотел убедиться, что избавился от любой устаревшей конфигурации, оставшейся от старого проекта. Я только что удалил некоторую конфигурацию Acquia Dev Desktop из конца файла `settings.php` и обнаружил, что старые настройки включают чуть выше — см. мое последнее обновление выше. Может быть, это проблема.
hotwebmatter avatar
флаг nr
@Kevin Чтобы ответить на ваш прямой вопрос: да, я уверен, что `./docroot/sites/default/settings.php` не игнорируется git, и он проходит через развертывание. Я вижу это на Acquia Cloud в ожидаемом месте и с ожидаемым содержимым. Временная метка и «шасум» совпадают с моими локальными. Все это работало нормально до обновления Drupal 8 до Drupal 9 на месте. После просмотра я не думаю, что мне следует удалять включение `settings.inc`. Я устраню неполадки с переопределением конфигурации для каждой среды, прежде чем делать что-либо еще.
Рейтинг: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';
      сломать;
    случай 'продукт':
      // делаем что-то в prod
      // Фабрике сайта может потребоваться другое значение в зависимости от
      // в настройках сайта
      $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
  // (как локальная установка разработчика).
  $settings['config_sync_directory'] = '../config/default';
  $settings['config_vcs_directory'] = '../config/default';
}

Я установил здесь одну и ту же конфигурацию по умолчанию для всех сред только для того, чтобы снова заработала базовая синхронизация конфигурации, но я намерен удалить этот код после настройки BLT 12. (BLT имеет свои собственные переопределения в разных местах, которые я не хочу испортить, переопределив здесь.)

Kevin avatar
флаг in
Это довольно странно для меня. У меня есть несколько сайтов D9 на Acquia, и все, что у меня есть в конце settings.php, это одна строка, которая изменяет каталог конфигурации. Я вообще не использую BLT.... так что в миксе может быть что-то лишнее.
hotwebmatter avatar
флаг nr
@Kevin Вы рекомендуете удалить ссылку на включаемый файл настроек?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.