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.