Django създава миграция за всяка новодобавена таблица във вашето приложение, независимо дали е управляван модел или не. Има обаче много важна и фина разлика, когато използвате managed=False
настройка. Получената миграция е фиктивен запис. Той изобщо не изпълнява никакъв SQL.
За да потвърдите това, добавете нов модел, който не се управлява
class Dummy(models.Model):
something = models.IntegerField()
class Meta:
managed = False
сега, когато правите makemigrations
последвано от sqlimigrate *myapp* *migration_number*
ще видите, че не създава sql.
Ако от друга страна откриете, че Django се опитва да създаде таблица за вас, това обикновено означава, че сте имали същия модел, който е съществувал по-рано, но по времето, когато моделът е бил управляван. За да потвърдите това, потърсете във вашите migrations
папка за VirtualTotal
което е името на въпросния модел.