Django`makemigrations`在后台如何工作?

时间:2019-04-30 08:34:20

标签: python django

我的问题是:呼叫manage makemigrations实际起什么作用?

我知道它会创建迁移文件,但是如何?如何跟踪自上次迁移以来发生的变化?是否直接将模型的当前状态与数据库进行比较?是否保留一些描述先前状态的隐藏文件?它调用框架代码的哪一部分?该文档对此没有任何说明。

1 个答案:

答案 0 :(得分:1)

将扫描您的模型,并将其与迁移文件中当前包含的版本进行比较。这将是基于迁移文件的应用程序内部的文件夹,其中将写入一组新的迁移。如Django官方文档所述,“迁移是以磁盘格式存储的,在此称为“迁移文件”。这些文件实际上只是具有声明的对象布局且以声明式编写的普通Python文件。” https://docs.djangoproject.com/en/2.2/topics/migrations/