近期发布django 1.9明确指出将删除syncdb命令。这有什么优点和缺点?
答案 0 :(得分:5)
这不是利弊的情况,syncdb命令在Django 1.7中被作为第三方库(称为" South"用于数据库迁移的用于Django核心,Djangos内置的迁移现在使用" migrate"而不是" syncdb"。 "执行syncdb"在1.7中已弃用,仅用于支持尚未转换为使用新迁移的旧项目。
答案 1 :(得分:5)
您的问题已在the official documentation中得到解答。
在1.7版之前,Django仅支持添加新模型 数据库;无法通过改变或删除现有模型 syncdb命令(迁移的前身)。
第三方工具,尤其是南方工具,为这些提供了支持 其他类型的变化,但它被认为是重要的 这种支持被带入核心Django。
由于migrate
是syncdb
的超集,因此没有理由在1.9之外的版本中继续支持syncdb
命令。
答案 2 :(得分:0)
Django现在能够使用迁移,它将您的模型转换为python数据库模式代码,使其与所有类型的数据库兼容。因此,您只需键入
,而不必使用原始SQL添加新表manage.py makemigrations
manage.py migrate
哪个会为你做任何事