Django vytváří migraci pro každou nově přidanou tabulku ve vaší aplikaci bez ohledu na to, zda se jedná o spravovaný model nebo ne. Existuje však velmi důležitý a jemný rozdíl, když použijete managed=False nastavení. Výsledná migrace je fiktivní záznam. Neprovádí vůbec žádné SQL.
Chcete-li to potvrdit, přidejte nový model, který není spravován
class Dummy(models.Model):
something = models.IntegerField()
class Meta:
managed = False
teď, když provedete makemigrations následuje sqlimigrate *myapp* *migration_number* uvidíte, že neprodukuje žádné sql.
Pokud na druhou stranu zjistíte, že se pro vás Django pokouší vytvořit tabulku, obvykle to znamená, že stejný model jste měli již dříve, ale v době, kdy byl model spravován. Chcete-li to potvrdit, vyhledejte migrations složka pro VirtualTotal což je název dotyčného modelu.