Вы НЕ (я повторяю: «вы НЕ ») хотят «динамически добавлять поля» в модель (то есть в схему вашей базы данных).Вы хотите, чтобы ваша база данных схема была стабильной, известной и полностью контролируемой версией.Если вы не понимаете, почему, просто спросите себя, как ваш код может использовать поле, о котором он даже не знает (и это только одна из многих причин не делать этого).
"Функции, подобные той, о которой вы упомянули, создаются с использованием фиксированной схемы, которая используется для описания «мета-схемы», где каждое «настраиваемое поле» на самом деле является записью в таблице «настраиваемых полей», а затем у вас обычно есть еще одна таблица длясохранить соответствующие значения.Это не обходится без большой сложности кода и огромного влияния на производительность как на уровне кода, так и на уровне базы данных.
Если это требование проекта, у вас теперь есть хотя бы первое представление о том, как это происходит.быть сделано.Но если ваша цель - просто избежать написания кода и выполнения миграций, тогда вы действительно хотите дважды подумать об этом ...