Django erstellt eine Migration für jede neu hinzugefügte Tabelle in Ihrer App, unabhängig davon, ob es sich um ein verwaltetes Modell handelt oder nicht. Es gibt jedoch einen sehr wichtigen und subtilen Unterschied, wenn Sie managed=False
verwenden Einstellung. Die resultierende Migration ist ein Dummy-Eintrag. Es führt überhaupt kein SQL aus.
Um dies zu bestätigen, fügen Sie ein neues, nicht verwaltetes Modell hinzu
class Dummy(models.Model):
something = models.IntegerField()
class Meta:
managed = False
jetzt, wenn Sie makemigrations
durchführen gefolgt von sqlimigrate *myapp* *migration_number*
Sie werden sehen, dass kein SQL erzeugt wird.
Wenn Sie andererseits feststellen, dass Django versucht, eine Tabelle für Sie zu erstellen, bedeutet dies normalerweise, dass Sie das gleiche Modell bereits früher hatten, aber zu dem Zeitpunkt, als das Modell verwaltet wurde. Um dies zu bestätigen, durchsuchen Sie Ihre migrations
Ordner für VirtualTotal
das ist der Name des betreffenden Modells.