Деякі модулі мають процедуру деінсталяції. З яких типово видаляються бази даних для цього модуля, змінні з таблиці змінних та локалі, введені цим модулем. Ці підпрограми живуть у .install
цьому модулі.
Тому їх неможливо виконати без наявності цього модуля. Тож ось наші нинішні кроки. Моє запитання: чи можна це зробити простіше та ефективніше? Скажіть, я видаляю модуль foo_bar.
- У RCS підготуйте новий випуск, де:
- Видаляються всі перестановки css та теми, які використовуються або створюються поверх foo_bar.
- Видаляються всі css та теми для модулів залежно від foo_bar.
- Натисніть це звільнення до прийняття. Перевірте деінсталяцію (від адміністратора / модулів) за допомогою останньої копії виробничої бази.
- Якщо все піде добре, розгорніть нову базу коду для виробництва, а потім встановіть foo_bar та його залежності там. Це призведе до видалення в різних модулях, очищення бази даних.
- У RCS (git) підготуйте новий випуск, де код фактично видалений.
- Розгорніть це для прийняття, коли ми перевіряємо, чи нічого випадкового від цього не залежало (деякі потворні модулі або функції тем включають файли безпосередньо з інших модулів. Найбільш це CSS, JS або файли зображень).
- Якщо це прийнято, розгорніть новий випуск у виробництво. Зараз у виробництві є чиста база даних та чиста база даних .
Проблема, яку я не можу зрозуміти, як вирішити, полягає в тому, що для цього завжди потрібні два випуски. Оскільки в Drupal для випуску потрібний сайт в автономному режимі, це означає два рази простою, щоб видалити один модуль. Також потрібні дві процедури випуску, які в професійних хостингових середовищах можуть бути дуже дорогими, трудомісткими або розчарувальними.
Якщо ми видалимо модуль із бази даних коду під час першої ітерації, ми не можемо запустити гачки для видалення, зберігаючи багато базування в базі даних; не лише кілька таблиць, а в основному змінні та локалі. Якщо ми не видалимо модуль з кодової бази, це означає, що база даних буде рости зі старим, невикористаним кодом; це не дає високих показників продуктивності, але робить підтримку коду все складніше і складніше.
Як ти з цим справляється?
[редагувати: додана примітка про те, що розгортання є важкою процедурою, часто]