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

Вернуться на верх