Если вы какое-то время работаете с Optimizely CMS, у вас, вероятно, накопилась некоторая техническая задолженность в определениях свойств. Когда вы выполняете рефакторинг модели, удаляя свойства, переименовывая типы контента или очищая после миграции, старые определения свойств часто остаются в базе данных. По большей части они безвредны, но добавляют шума и могут сбивать с толку при проверке типов контента.
На самом деле я создал инструмент для этого примерно 10 лет назад, и недавно мне пришлось вернуться к нему во время большого проекта миграции, в результате которого у нас оказалось довольно много бесхозных свойств, которые
требовалась уборка.
Что он делает
Инструмент сканирует все типы контента, определенные кодом (PageTypes и BlockTypes), и ищет в базе данных определения свойств, которые больше не имеют соответствующего атрибута в коде. Типы контента, созданные вручную, намеренно пропускаются: проверяются только типы, поддерживаемые моделью C#.
Результаты сгруппированы по типу контента, чтобы вы могли точно увидеть, что именно затронуто. Отсюда у вас есть несколько вариантов:
– Выберите отдельные свойства и удалите их.
– Выберите все свойства для определенного типа контента.
– Удалить все сразу
Оба пути удаления требуют диалогового окна подтверждения, поскольку эта операция является постоянной и не может быть отменена.
Также имеется кнопка «Повторное сканирование», если вы хотите выполнить повторную проверку после развертывания изменений модели.
Установка
Настройте blazor и решите, как вы хотите отображать компонент. Я только что создал тип контента, специфичный для этого инструмента. Пример макета включен в github.
Добавьте инструмент в свой проект и зарегистрируйте его в Startup.cs:
Services.AddMissingProperties();
Исходный код доступен https://github.com/pernergard/NergardToolsAndUtilities
10 марта 2026 г.
Продолжение темы
