Коли ви створюєте нову таблицю в hook_schema()
, чи слід її додавати і в таблицю hook_update_N()
? Або є якийсь трюк, або я щось пропустив, щоб оновлення баз даних автоматично додавали таблиці?
Документація kuk_update_N () нічого не пояснює щодо введення нових таблиць, тоді як документаціяhook_schema()
говорить:
Таблиці, задекларовані цим гаком, будуть автоматично створені під час першого ввімкнення модуля та видалені при видаленні модуля.
(Виділення моє)
І якщо так, то як найкраще уникнути дублювання визначень схеми для нової таблиці як у_up_update_N (), так і в___чхему (). Просто посилаючись на схему наступним чином:
function hook_update_N(&$sandbox) {
$schema = hook_schema();
$name = "foo";
$table = $schema["foo"];
db_create_table($name, $table);
}
Здається, це працює, але якщо знову змінити таблицю, не вдасться, якщо користувач запустить оновлення та отримає запуск двох або більше s_update_N () s. Зрештою: перший hol_update_N тоді вже встановить правильну базу даних, а другий_up_update_M () спробує додати / змінити / змінити стовпці, які вже були оновлені.
Як ви з цим справляєтесь?