一尘不染

在Django 1.9中我应该使用什么来代替syncdb?

django

看看这个:

$ pypy ./manage.py syncdb
/usr/lib64/pypy-2.4.0/site-packages/django/core/management/commands/syncdb.py:24: RemovedInDjango19Warning: The syncdb command will be removed in Django 1.9
  warnings.warn("The syncdb command will be removed in Django 1.9", RemovedInDjango19Warning)

(cut)

阅读 373

收藏
2020-03-30

共1个答案

一尘不染

syncdb由于django 1.7引入的迁移系统而被弃用。

现在,你可以使用跟踪更改makemigrations。这会将你的模型更改转换为python代码,以使其可部署到另一个数据库。当你需要对数据库进行进一步的修改时,可以使用数据迁移。

创建迁移后,你必须应用它们:migrate

因此,除了使用之外,syncdb你还应该使用makemigrations然后migrate

更改模型中的某些内容后,开发工作流程如下:

./manage.py makemigrations
./manage.py migrate

在你的生产系统上:

./manage.py migrate

奖励:你无需migrate为每次更改都运行。如果你尚未应用多个更改,django将按照正确的顺序运行它们。

2020-03-30