Всех с Новым Годом!
Может кто сталкивался с тем, как можно поменять место хранения полей модели? Например, у меня есть модель, где все поля кроме одного должны храниться в базе, а одно (MarkdownxField) должно браться из гитового репозитория. Порядок действий я себе представляю так:
1) при ./manage.py migrate
помимо всех остальных действий клонируется/пуллится репозиторий с гита. Креды репозитория указаны в class Meta
модели.
2) при создании нового инстанса модели, создается запись в БД и в гитовом репозитории создается файл с нужным коммитом, и пушится в репозиторий. Все действия с данным полем будут проходить только через репозиторий.
3) Я готов пойти на определенные издержки (созданий и изменений инстансов будет мало, чтений много).
4) Для чего это нужно? Чтобы хранить статьи в гите в формате markdown, чтобы и править было просто, и историю изменений посмотреть было можно, и авторство установить. Также, чтобы при падении базы, можно было просто спуллить репозиторий и жить как ни в чем не бывало. Это гораздо проще, чем подымать кластер из постгри для обеспечения сохранности данных в джанге.
5) Всякие сложные ситуации вида «два человека вносят правки в один и тот же файл, и как быть в этом случае» опускаются. в крайнем случае можно показать сообщение из гита, что надо разрешить конфликт последнему человеку.
6) Больший приоритет у конечного репозитория. То есть, если локально на серваке одна версия репозитория, а удаленно - другая, то в любом случае надо пуллить удаленный репозиторий.
7) Поддержка веток не планируется. Статьи, сохраненные в гите отображаются только из мастера. Пока не было мерджа в мастер, джанга их не видит.
Может кто-то видел/делал нечто подобное?