Статья в разработке. Вы можете читать все, что написано ниже, но на свой страх и риск 😎
Нужно добавить новое поле для хранения данных в уже существующую таблицу в решении и вывести его в пользовательские представления
Сначала нужно понять в какую именно таблицу нужно добавить новое поле.
В меню Администратора можем найти необходимую таблицу в разделе "🗄 All Entities"
, либо в разделе 📊 Schemas
выбрать нужную схему и уже там найти нужную таблицу.
На форме сущности (представление Entity <название таблицы>
) в правой части в Column Fields for Entity
добавляем новое поле
name
- название поляtype
- тип поля (какие есть типы данных)is_nullable
- обязательность поля (true - необязательное)is_immutable
- изменяемость поля (true - нельзя изменять после создания записи)default
- значение, которым будет заполняться поле по умолчаниюНиже на этой же форме можно заполнить дефолтные атрибуты для созданного поля (атрибуты, которые будут по умолчанию применяться во всех представлениях, где это поле используется).
Про то, какие вообще есть атрибуты, можно почитать вот тут. В дефолтных атрибутах можно прописать атрибуты ячеек и атрибуты отображения
Сохраняем. Поле успешно добавлено в базу 🚀
Теперь надо вытащить его на пользовательские представления
Выбираем пользовательское представление, на которое хотим добавить новое поле
В бургер-меню выбираем Редактировать представление (Edit user view)
.
Вставляем в SELECT-часть кода представления название поля (по аналогии с уже добавленными)
После сохранения проверяем, что поле добавилось в пользовательское представление
Выбираем пользовательское представление, на которое хотим добавить новое поле
В меню выбираем Редактировать представление (Edit user view)
.
Вставляем в SELECT-часть кода представления название поля (по аналогии с уже добавленными), при необходимости указываем блок, в котором расположить поле.
После сохранения проверяем, что поле добавилось в пользовательское представление
Если поле необходимо вынести на другие пользовательские представления - всё делается аналогично
Если в системе настроены пользовательские роли (разграничения доступов), то необходимо прописать доступы к новому полю, чтобы у пользователей не сломались все пользовательские представления, где теперь есть новое поле 😵
Для этого в меню администратора открываем 🎩 Roles
.
Для каждой роли прописываем доступы к новому полю
change
) и на чтение (select
)Всё! Поле добавлено в систему, теперь его можно использовать 🥳
Если в таблице, в которую добавляется поле, уже есть пользовательские данные - создать новое поле, обязательное к заполнению, нельзя 😥
Придется сначала создать поле с is_nullable = true
, затем заполнить его каким-то значением для всех записей таблицы (вручную или с помощью автоматики), а уже потом установить is_nullable = false
Проверьте, настроены ли доступы к новому полю для роли пользователя.
Посмотреть, к какому именно полю не хватает доступов, можно в логах
https://<ваш-инстанс>.ozma.org/views/admin/recent_events