Django: предотвращение создания миграций для некоторых моделей
Django 3.2.6
Я бы хотел, чтобы некоторые модели вообще не делали миграций.
Возможно ли это?
Я пытался:
1. https://docs.djangoproject.com/en/3.2/ref/models/options/#managed
class Meta: managed = False
2.
class PrimaryReplicaRouter:
special_model_names = {'generalsettings', 'generalsettings', }
def allow_migrate(self, db, app_label, model_name=None, **hints):
if model_name in self.special_model_names:
return False
return True
Не помогает: создаются миграции. Не мигрирует. Но миграции становятся излишне шумными.
Цитирую отсюда:
https://docs.djangoproject.com/en/3.2/topics/db/multi-db/#allow_migrate
makemigrations всегда создает миграции для изменений модели, но если allow_migrate() возвращает False, любые операции миграции для имени_модели будут молча пропущены при запуске migrate на db.
Я не хочу делать миграции для некоторых моделей. Возможно ли это?
В вашем классе добавьте следующую строку:
class Meta:
abstract = True
Если какой-либо класс Meta является абстрактным true, django не создает файл миграции для этой модели
Вот здесь подробнее: https://docs.djangoproject.com/en/3.2/ref/models/options/#abstract