Djangoは、マネージドモデルであるかどうかに関係なく、アプリに新しく追加されたテーブルごとに移行を作成します。ただし、managed=Falseを使用する場合、非常に重要で微妙な違いがあります。 設定。結果として生じる移行はダミーエントリです。 SQLはまったく実行されません。
これを確認するには、管理されていない新しいモデルを追加します
class Dummy(models.Model):
something = models.IntegerField()
class Meta:
managed = False
makemigrationsを実行すると 続いてsqlimigrate *myapp* *migration_number* SQLが生成されないことがわかります。
一方、Djangoがテーブルを作成しようとしていることに気付いた場合、それは通常、同じモデルが以前に存在していたが、モデルが管理されていたことを意味します。これを確認するには、migrationsを検索してください VirtualTotalのフォルダー これは問題のモデルの名前です。