django中migrate命令的解释
Explaination about migrate command in django
谁能解释一下,django 中的迁移是如何发生的?
实际上我想要“./manage.py migrate”命令的完整后端程序
作者在"django under the hood"会议上解释过一次。我有一个总结:http://reinout.vanrees.org/weblog/2014/11/14/2migrations.html
它的工作方式是将所有操作分割成微小的依赖项。必须创建的每个单独字段都变成了一个微小的依赖步骤。在将步骤列表排序(通过 dependency-resolving 循环)为正确的步骤列表后,优化器遍历该列表并对其进行优化。例如,如果模型被创建和删除,则无需执行任何操作。
拼图的最后一部分是图表。它在内存中构建所有基本迁移的有向图。为此,它需要读取磁盘上的所有模型。它还在数据库中查找。那里有一个 table 标记已应用了哪些迁移(或者更确切地说:迁移图中的节点)。
如果您想查看代码,这里有一些提示:
django/db/migrations/autodetector.py
,从 _detect_changes() 开始
django/db/migrations/optimizer.py
,从 reduce() 开始
django/db/migrations/graph.py
django/db/migrations/loader.py
谁能解释一下,django 中的迁移是如何发生的? 实际上我想要“./manage.py migrate”命令的完整后端程序
作者在"django under the hood"会议上解释过一次。我有一个总结:http://reinout.vanrees.org/weblog/2014/11/14/2migrations.html
它的工作方式是将所有操作分割成微小的依赖项。必须创建的每个单独字段都变成了一个微小的依赖步骤。在将步骤列表排序(通过 dependency-resolving 循环)为正确的步骤列表后,优化器遍历该列表并对其进行优化。例如,如果模型被创建和删除,则无需执行任何操作。
拼图的最后一部分是图表。它在内存中构建所有基本迁移的有向图。为此,它需要读取磁盘上的所有模型。它还在数据库中查找。那里有一个 table 标记已应用了哪些迁移(或者更确切地说:迁移图中的节点)。
如果您想查看代码,这里有一些提示:
django/db/migrations/autodetector.py
,从 _detect_changes() 开始
django/db/migrations/optimizer.py
,从 reduce() 开始
django/db/migrations/graph.py
django/db/migrations/loader.py