任何人都可以解释我,迁移将如何在 Django 中发生?实际上,我需要“ ./manage.py migration”命令的完整后端过程
作者曾在“引擎盖下的django”会议上对其进行过解释。我对此进行了总结:http : //reinout.vanrees.org/weblog/2014/11/14/2migrations.html
它的工作方式是将所有操作切成微小的依赖项。必须创建的每个单独字段都变成了一个微小的依赖步骤。在步骤列表被排序(通过依赖关系解析循环)到正确的步骤列表中之后,优化器遍历该列表并对其进行优化。例如,如果创建和删除模型,则无需执行任何操作。
难题的最后一部分是图表。它构建内存中所有基本迁移的有向图。为此,它需要读取磁盘上的所有模型。它还会在数据库中查找。那里有一个表格,用于标记已经应用了哪些迁移(或者更确切地说:迁移图中的节点)。
如果您想看一下代码,这里有一些指针:
django/db/migrations/autodetector.py
, 从 _detect_changes() 开始django/db/migrations/optimizer.py
,从reduce()开始django/db/migrations/graph.py
django/db/migrations/loader.py
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句