【问题标题】:What is the difference between syncdb and migrate?syncdb 和 migrate 有什么区别?
【发布时间】:2014-02-19 13:51:58
【问题描述】:

我正在浏览 django 文档。在这里我有一个情况。在其中一份文档中,有人告诉我这样做

python manage.py migrate

在另一个方面

python manage.py syncdb

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

【问题讨论】:

标签: python django web frameworks


【解决方案1】:

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

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

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

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

【讨论】:

  • 谢谢!!我花时间在那上面。你能告诉我一些关于南方的事情吗? virtualenv中的“pip install south”会得到包吗??
  • 是的,我尝试通过执行“pip install django==1.7”来安装最新版本..我不能这样做..你也能解释一下吗??
  • south docs 比我在这里写的任何评论都好。如果您遇到困难,请再问一个问题。
  • django 1.7 尚未发布。它正在开发中。您可以安装它,但我不推荐它,因为它不如 1.6 稳定并且可能会发生变化。
  • pip install South 无论如何都会为您提供 South (0.8.4) 的最新稳定版本,因此您无需指定版本
【解决方案2】:

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

来自网站:

这是面向 Django 项目的南方智能架构和数据迁移。

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

请参阅readthedocs 的文档

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-08-22
      • 2015-07-10
      • 2014-04-12
      • 2015-06-23
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      • 2012-02-06
      相关资源
      最近更新 更多