Я работаю с приложением django, которое росло больше, чем я ожидал, и теперь вам нужно архивировать некоторые данные, чтобы он не замедлял возможные запросы. Мой вопрос в том, что лучший способ архивирования существующей модели? Вот то, что я думал, что до сих пор:Архивирование данных модели в Django
1 - Создание унаследованные моделей:
class OriginalModel(models.Model):
...
field = models.CharField(etc...)
...
class ArchivedModel(OriginalModel):
pass
2 - Создать метод post_save так всякий раз, когда что-то сохраняется в мою оригинальную модель он будет создавать архивный экземпляр, а ,
3 - Создайте задачу очистки с сельдереем на моей оригинальной модели, чтобы сохранить только соответствующие данные.
Я не уверен, однако, если наследование модели будет работать, как я ожидаю. Если у кого-то есть какой-то вклад в это, я буду очень благодарен.
Лучшее решение зависит от конкретных деталей вашего проекта. Как только я это сделал, как говорится в принятом ответе. Это осложнило множество вещей в взглядах Джанго. Что-то столь же банально, как попытка найти запись через интерфейс администратора: если запись архивирована, тогда мне нужно искать в архиве, если нет, то я ищу в главной таблице. О, это непреодолимо хорошо, но этот раскол на уровне ORM скоро ползет повсюду. В конечном итоге я вернулся к одной таблице, когда проект созрел. Проблемы производительности, такие как упоминаемые вами, должны быть решены на уровне БД. – Louis