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