澄清django syncdb --all选项

use*_*276 3 django django-syncdb django-1.6

我想知道到底是./manage.py syncdb --all做什么的?我最近有一个数据库问题,我可以通过运行此命令来解决,但我不确定它在幕后做了什么.据我所知,syncdb为未安装南方的已安装应用程序创建表格,除非指定了--all选项但是我对实际发生的事情和何时使用感到困惑,因此忽略了南迁移控制下的表格它.我无法在django-admin文档中找到关于该选项的任何内容,并且手册页仅对该选项说了这个.

--all                 Makes syncdb work on all apps, even migrated ones. Be
                        careful!
Run Code Online (Sandbox Code Playgroud)

为什么我需要小心?这究竟是做什么的?是完全删除数据库并重新开始,我认为这会导致我丢失存储在数据库中的所有数据(对吗?),还是会发生其他事情?我正在使用Django 1.6,如果这有所作为.

Ala*_*air 5

当你安装south时,它会用自己的命令替换Django的syncdb命令.它是syncdb南部版本,有--all选项,但不推荐:

如果你想在所有应用程序上运行syncdb,那么请使用--all,但要注意; 这将使您的数据库架构和迁移不同步.如果你这样做,你可以用以下方法修复它:

syncdb命令永远不会删除表.您需要小心,因为您不希望数据库架构和迁移不同步.