Files
ave-cms/help/fields/operations.md
T
2026-07-27 12:58:44 +03:00

3.2 KiB
Raw Permalink Blame History

Управление типами полей

К разделу «Поля документов»

Установлен, включён и используется — разные состояния

Состояние Что означает
Установлен Класс присутствует в FieldRegistry, существующие данные можно читать.
Доступен для создания Тип включён в настройке rubrics.enabled_field_types.
Используется В rubric_fields есть хотя бы одно поле с этим кодом.

Отключение в панели управления меняет только второе состояние. Это безопасный способ сократить список для контент-менеджеров без поломки существующего сайта.

Удаление модульного типа

Деинсталляция модуля блокируется, если хотя бы одна рубрика использует его тип. Правильный порядок:

  1. Найти поля типа в Рубрики и поля → Типы полей.
  2. Решить судьбу каждого поля: оставить модуль, удалить поле вместе с данными или выполнить отдельную миграцию в другой совместимый тип.
  3. Проверить публичные шаблоны и API-потребителей.
  4. Только после нулевого использования деинсталлировать модуль.
  5. Физически удалять пакет можно лишь после деинсталляции и только при package.removable = true.

Простая смена rubric_field_type в БД не является миграцией: формат значения, настройки, числовой индекс и шаблоны могут отличаться.

Обновление типа

Обратимо изменять можно:

  • подписи и hints;
  • визуальное форматирование;
  • новые настройки с безопасным default;
  • поддержку нового входного формата при сохранении старого чтения.

Требуют миграции:

  • переименование code();
  • scalar ↔ JSON;
  • смена ключей JSON;
  • изменение единиц хранения;
  • изменение смысла числового индекса;
  • удаление ранее поддерживаемого значения списка.

После обновления типа пересохранение всех документов не должно быть обязательным для обычного чтения. Если оно необходимо, модуль должен предоставить управляемую web-операцию с пакетной обработкой и прогрессом; production не должен зависеть от CLI.