Как добавить поле узла в таблицу базы данных в пользовательском модуле

drupal.stackexchange https://drupal.stackexchange.com/questions/2315

  •  16-10-2019
  •  | 
  •  

Вопрос

Когда я пишу свой собственный собственный модуль и проектирую таблицу базы данных, если я хочу использовать поле nid Чтобы ссылаться на узел, потому что я хочу, чтобы мой модуль добавил что -то в каждый узел, как мне реализовать это в файле mymodule.install модуля?

Это было полезно?

Решение

Большую часть времени вы, вероятно, захотите использовать полевой API (модуль CCK в D6), а не добавлять пользовательские таблицы или модифицировать узел самостоятельно.

Добавление пользовательских таблиц было очень D5 способом делать вещи.

Если вы хотите сделать это, вам нужно будет определить свои таблицы, используя hook_schema() а затем в вашем крюке mymodule_install () вы можете позвонить drupal_install_schema() Это должно создать новую таблицу, которая представляет ваш модуль.

Стоит отметить, что ваша схема всегда должна представлять вашу текущую схему. Если вы добавите столбец, вы должны изменить схему, чтобы кто -то, кто устанавливает ваш модуль, получил правильную схему, но также написать функцию обновления, чтобы изменить таблицу, чтобы существующие пользователи получали правильную новую схему.

Можно изменить таблицы других модулей, но я думаю, что это должно быть рассмотрено в другом вопросе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top