Я представляю новую конфигурацию сущности в Drupal, которая добавляет несколько новых логических полей. Проблема в том, что хотя я установил значение по умолчанию как TRUE в пользовательском интерфейсе, это только для новых сущностей. Существующие сущности не будут иметь значения или будут ложными при оценке в коде.
Я хотел бы внести в сценарий изменение, которое по умолчанию для всех существующих объектов будет установлено в TRUE, когда конфигурация будет введена для обратной совместимости, и запустить ее только один раз.
Типичные сценарии развертывания советуют сначала запустить updb, а затем cim с Drush. Это создает конфликт при попытке сделать это.
Пример скрипта развертывания пантеона:
если (isset($_ENV['PANTHEON_ENVIRONMENT'])) {
$статус = 0;
$config_directory = имя_каталога(__FILE__) . '/конфигурация/по умолчанию';
passthru("drush updb --yes", $status);
passthru("drush cim --yes", $status);
passthru("drush cim --yes", $status);
passthru("drush cim --yes", $status);
passthru("drush updb --yes", $status);
passthru("drush cr", $status);
если ($ статус == 0) {
echo('Конфигурация импортирована, база данных обновлена.' . "\n");
} еще {
echo('Конфигурация не импортирована / база данных не обновлена. Команда Drush вернула ошибку.' . "\n");
}
}
Есть ли лучший способ внести подобные изменения, которые запускаются только один раз, не вызывая сбоя сценария, подобного приведенному выше?