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

看看这个:

$ 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) 

我跑了一个快速的谷歌search ,但无法find答案 – 我应该用什么,而不是syncdb

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

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

在创build迁移之后,您必须应用它们: migrate

所以,而不是使用syncdb你应该使用makemigrations ,然后migrate

在您更改模型中的某些内容后,开发中的工作stream程:

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

在您的生产系统上:

 ./manage.py migrate 

奖励:您无需为每次更改都运行migrate 。 如果你有多个更改没有应用,Django会以正确的顺序为你运行它们。

你一定要使用迁移系统 。 通过它可以跟踪models.py更改,并为数据库创build迁移。 迁移系统使用命令makemigrations创build迁移并migrate以迁移数据库。

如果出于任何原因,您需要以与syncdb相同的方式创build数据库,则会有导致migrate以相同方式工作的命令标志。 你只有在你真的需要时才应该这样做,而且你知道自己在做什么。 例如,要为您select的持续集成系统创build一个空数据库。

 python manage.py migrate auth # performs migrations for auth and contenttypes contrib apps python manage.py migrate --run-syncdb # creates the rest of the database 

在Django 1.9.1上testing

您应该使用django 1.7中引入的makemigrationsmigrate命令

https://docs.djangoproject.com/en/1.7/topics/migrations/

syncdb与数据库迁移有一些问题。 所以,在django 1.7 makemigrationsmigratemigrate已经被引入。 现在在Django 1.9 syncdb已被弃用。 尝试
1. python manage.py makemigrations ,用于检测数据库中的更改,并在migrations文件夹中创build一个.py文件2. python manage.py migratepython manage.py migrate应用到数据库