Який порядок повинен запускати імпорт конфігурації та оновлення модулів?


10

Оскільки версія модулів схеми зберігається у сховищі ключових значень, вона унікальна для кожного сайту та не синхронізується через управління конфігурацією. Це має сенс, оскільки в оновленнях може знадобитися внести корективи, які не інкапсульовані в config (наприклад, оновлення бази даних), але є й інші зміни, які також можуть бути включені в config (наприклад, додавання нового значення конфігурації).

  • Чи є якісь ризики для запуску імпорту конфігурації та оновлення бази даних в будь-якому порядку?
  • Який переважний порядок виконання цих операцій?
  • Чи потрібні гачки для оновлення, щоб зробити якісь спеціальні приміщення для елементів конфігурації, які, можливо, вже були імпортовані?
  • Чи є інші операції, які можуть знадобитися для повного оновлення виробничого середовища?

Випуск по темі: drupal.org/node/2901418 :
milkovsky

Відповіді:


12

Оновлення потрібно запустити до імпорту конфігурації

Виправлена ​​проблема з ядром забезпечить відповідність версій коду та схеми перед тим, як дозволяти імпортувати конфігурацію .


Проблеми з імпортом конфігурації перед оновленнями

  • Гак оновлення, що спирається на значення конфігурації, може закінчитися іншим результатом, ніж якби він був запущений за значенням попереднього імпорту.

  • Оновлення потенційно може не вдатися, якщо воно спробує створити об'єкти конфігурації, які вже існують.

Побоювання щодо імпорту конфігурації після оновлень

  • Якщо оновлення, яке запроваджує новий об'єкт конфігурації, запускається спочатку, воно створить новий елемент конфігурації, який матиме інший UUID, ніж той, який знаходиться в конфігурації. Однак після імпортування конфігурації об'єкт слід замінити версією config.

    Тут може виникнути потенційна проблема, якщо заміна об’єкта вплине на пов’язаний вміст. Наприклад, якщо оновлення мігрує вміст з одного поля в інше, при імпорті конфігураційне поле буде повністю замінено і вміст потенційно втрачено. У цьому випадку процес розгортання, можливо, потребує коригування для запуску оновлень у цільовому середовищі та експорту отриманої конфігурації.


Раніше я залишав відповідь, що замовлення не має значення (лише те, що порядок оновлень та конфігурацій має бути таким же, як було реалізовано). Я думаю, що я помилявся, тому що ви завжди повинні експортувати конфігурацію після оновлення. Отже, на локальному рівні оновіть, потім експортуйте, розгортайте, оновлюйте та імпортуйте.
ognockocaten

Під час обговорення пов'язаної проблеми, є випадок, коли для оновлень нашої організації потрібно імпортувати нове поле, інакше гак post_update вийде з ладу. У цьому випадку нам потрібен імпорт конфігурації, зроблений перед оновленням бази даних. Здається , найсвіжіша взяти на це тут: drupal.org/project/drupal/issues/2901418
atwixtor
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.