Я будую спеціальний модуль в Drupal 8. До нього входять деякі файли конфігурації YAML.
У міру розвитку мені потрібно змінити та додати до конфігурації, наприклад, додати ще одне поле до моєї спеціальної сутності.
В даний час єдиний спосіб, коли я знайшов, щоб Drupal помітив зміни, - це видалити модуль і повторно встановити його.
Чи є спосіб змусити Drupal перевірити, чи конфігураційні файли, надані модулями, такі ж, як і активний конфігуратор, а якщо ні, оновити активну конфігурацію? Як обробляються оновлення модулів? У D7 hook_update_N
буде використано для додавання полів за допомогою PHP, але схоже, що цим слід обробляти CM у D8?
Що я спробував після оновлення файлів yml у модулі:
drush cr
, налаштування синхронізації.вручну копіювати всі оновлені конфігураційні файли
sites/default/files/config_XXX/staging/
- але це призводить до цієї помилки. "Поетапну конфігурацію неможливо імпортувати, оскільки вона походить з іншого сайту, ніж цей сайт. Ви можете синхронізувати конфігурацію лише між клонованими екземплярами цього сайту." .вручну імпортувати файли по одному за допомогою диспетчера конфігурацій. Це працює, але очевидно, що повинен бути більш автоматичний спосіб.
[EDIT] вручну використовуйте модуль config_update для перевірки змін та «повернення» до конфігурації модуля. Знову ж таки, це посібник.
EDIT: З керування конфігурацією - робити і не робити
НЕ ДЛЯ
Спробуйте змінити активну конфігурацію на своєму сайті, змінивши файли в каталозі config / install модуля. Це НЕ буде працювати, оскільки Drupal буде читати з цього каталогу лише тоді, коли встановлений модуль.
... але зміни там збираються статися, якщо модулі не пов'язані з будь-конфиг вони потребували їх перший коли - або відпустити, і ніколи не може коли - небудь оновлення або додавання конфігурації.
Заздалегідь спасибі.
hook_update_N
я припускаю, але я не впевнений у чому
hook_update_N
. Відмінна стаття про Drupal 8 для невеликих сайтів (та частина 2 ). У D8 "сайти мають свою конфігурацію, а не модулі" .