syncdb和migrate之间有什么区别?

时间:2014-01-28 10:13:16

标签: python django web frameworks

我正在浏览django文档。在这里我有一个情况。在其中一个文档中,我被告知要做

python manage.py migrate

而在另一个

python manage.py syncdb

我不能做第一个(错误:找不到迁移命令。)但第二个对我来说很好。这是版本问题还是我需要处理其他问题。

3 个答案:

答案 0 :(得分:7)

migrate命令在即将发布的Django 1.7中是新的,尚未发布。

对于早期版本,您可以使用syncdb或外部应用South

阅读文档时,请使用文档版本切换器选择正确的版本。

例如,当前1.6 Tutorial使用syncdb,但dev tutorial(为即将到来的1.7编写)使用migrate

答案 1 :(得分:6)

命令migrate属于名为south(http://south.aeracode.org/)的应用程序。

来自网站:

  

这是Django项目的南方智能模式和数据迁移。

在Django == 1.7之前,您必须安装第三方应用程序才能执行数据库迁移。

请参阅readthedocs

上的文档

答案 2 :(得分:2)

这取决于您正在阅读的文档版本。 migrate是来自South的命令,直到最新(当前开发或开发)版本的django是一个单独的应用程序。它最终被集成到Django中(基本上每个django项目当然都使用它,所以非常值得阅读。)

在django文档页面的右下角有一个选择器,你可以在不同版本的Django之间切换,所以如果你正在寻找你的项目的信息,最好更改为Django的版本你'目前正在使用。