为什么官方django基金会在django 1.9版本中删除'syncdb'命令?

anc*_*cho -4 python django

在不久的将来发布django 1.9明确指出将删除syncdb命令.这有什么优点和缺点?

ptr*_*ptr 5

这不是一个优点或缺点的情况,syncdb命令在Django 1.7中变得多余,因为用于数据库迁移的称为"South"的第三方库被合并到Django核心中,现在使用"迁移"代替迁移的Djangos "syncdb"."syncdb"在1.7中已弃用,仅用于支持尚未转换为使用新迁移的旧项目.

  • 在1.7之前你有两个命令,`syncdb`,它们将创建数据库表,而`migrate`则从南方执行模式迁移.从1.7开始,你有`makemigrations`命令为应用程序创建初始模式迁移 - 基本上是syncdb所做的 - 然后迁移以相同的方式运行所有这些迁移,因此不需要syncdb (2认同)

Sae*_*aeX 5

您的问题在官方文档中得到了解答.

在1.7版之前,Django仅支持向数据库添加新模型; 无法通过syncdb命令(迁移的前身)更改或删除现有模型.

第三方工具,尤其是南方工具,为这些其他类型的变更提供了支持,但认为重要的是支持被带入核心Django.

由于migrate是超集syncdb,因此没有理由syncdb在1.9以上的版本中继续支持该命令.