澄清django syncdb --all选项

时间:2014-07-04 08:30:47

标签: django django-1.6 django-syncdb

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

--all                 Makes syncdb work on all apps, even migrated ones. Be
                        careful!

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

1 个答案:

答案 0 :(得分:5)

当您安装south时,它会将Django的syncdb命令替换为自己的命令。 south version of syncdb具有--all选项,但不推荐使用:

  

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

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