Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django中migrate命令的解释_Django_Migrate - Fatal编程技术网

django中migrate命令的解释

django中migrate命令的解释,django,migrate,Django,Migrate,谁能解释一下,django的移民将如何发生? 实际上,我需要“/manage.py migrate”命令的完整后端过程,作者曾在“django under the hood”会议上解释过这一点。我对此有一个总结: 它的工作方式是将所有操作分割成微小的依赖项。必须创建的每个字段都被转换为一个微小的依赖步骤。将步骤列表排序(通过依赖项解析循环)到正确的步骤列表中后,优化人员将遍历该列表并对其进行优化。例如,如果创建并删除了模型,则无需执行任何操作 谜题的最后一部分是图表。它构建了内存中所有基本迁移的

谁能解释一下,django的移民将如何发生?
实际上,我需要“/manage.py migrate”命令的完整后端过程,作者曾在“django under the hood”会议上解释过这一点。我对此有一个总结:

它的工作方式是将所有操作分割成微小的依赖项。必须创建的每个字段都被转换为一个微小的依赖步骤。将步骤列表排序(通过依赖项解析循环)到正确的步骤列表中后,优化人员将遍历该列表并对其进行优化。例如,如果创建并删除了模型,则无需执行任何操作

谜题的最后一部分是图表。它构建了内存中所有基本迁移的有向图。它需要读取磁盘上的所有型号。它也会在数据库中查找。其中有一个表,用于标记应用了哪些迁移(或者更确切地说:迁移图中的节点)

如果您想查看代码,以下是一些指针:

  • django/db/migrations/autodetector.py
    ,从_detect_changes()开始
  • django/db/migrations/optimizer.py
    ,从reduce()开始
  • django/db/migrations/graph.py
  • django/db/migrations/loader.py

编辑注:这个答案起初只是带有链接的第一段。两分钟后,当我把剩下的答案加在一起时,它已经被否决了两次。很抱歉没有一次性提交答案。谢谢@Reinot van Rees