Как изменить длину поля (max length) после создания, сохраняя данные

Друпал не позволяет менять длину текстового поля после создания. Функция field_update_field также нам не поможет — будет сгенерирована соответствующая ошибка, что поле уже содержит данные и изменить его длину нельзя.

Это можно проделать вручную, зная архитектуру drupal.

  1. Изменяем длину поля в таблице-хранилище конечного поля field_data_{field_name};
  2. Изменяем длину поля в таблице ревизий поля;
  3. Меняем длину в конфигурации полей.

Если длина текстового поля в результате изменения должна уменьшиться, то предварительно нужно выполнить UPDATE, укорачивающий значения до конечной длины. Но обычно размер поля изменяют в большую сторону.

Оптимальное решение — создать специальный скрипт, который бы выполнял все эти рутинные операции.

Мало букафф? Читайте есчо !

Список всех типов публикаций в Drupal

Май 13, 2020 г.

Как получить полный список зарегистрированных типов публикаций в Drupal 7. Задача типична для бек-енда при создании форм страниц настроек. Потому покажу в статье пример реализации поля для формы с выбором типов публикаций. В API Drupal существует ...

Читать

Добавляем фильтр в wysiwyg в Drupal

Сентябрь 5, 2020 г.

Пример добавления обработчика (фильтра) текста в rich editor. Требуется всего два шага для реализации нового фильтра: имплементировать hook_filter_info(), ...

Читать

node_save в hook_node_insert

Апрель 13, 2021 г.

Рассмотрим технику того, как выполнить node_save во время hook_node_insert. Проблема в том, что во время данного хука мы еще находимся в транзакции и выполнить сохранение ноды прямо тут коде функции - не получится. Т.е. следующий код работать не ...

Читать

Создание условий `или` в запросах через db API Drupal

Январь 4, 2019 г.

Конструирование запросов через Drupal DB API необходимо для поддержки совместимости кода для разных источников данных. Друпал предоставляет и более прямые средства для написания запросов вроде db_query, и никто не может запретить вам применить функционал ...

Читать
 

Комментарии к «Как изменить длину поля (max length) после создания, сохраняя данные»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: