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

Python 在Django 1.9中,我应该使用什么来代替syncdb?,python,django,django-1.8,Python,Django,Django 1.8,看看这个: $ 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

看看这个:

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

我运行了一个,但找不到答案-我应该使用什么来代替
syncdb

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


syncdb
因引入而不推荐使用

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

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

因此,与其使用
syncdb
,不如使用
makemigrations
,然后使用
migrate

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

./manage.py makemigrations
./manage.py migrate
在您的生产系统上:

./manage.py migrate
额外好处:您不需要为每次更改运行
migrate
。如果您有多个更改尚未应用,django将按照正确的顺序为您运行这些更改。

您一定要使用。它允许您跟踪
models.py中的更改,并为数据库创建迁移。迁移系统使用这些命令创建迁移和迁移数据库

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

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上测试。

syncdb
在数据库迁移方面存在一些问题。因此,在django 1.7之后,引入了
makemigrations
migrate
。 现在在django中,1.9
syncdb
已被弃用。 试试
1.
python manage.py makemigrations
检测数据库中的更改,并在migrations文件夹中创建一个
.py
文件
2.
python manage.py migrate
将迁移应用于数据库

事实上,现在我再次查看,它就在那里:
syncdb已被弃用,并被migrate所取代
这是最好的新功能;)注意:
makemigrations
可能需要模块名作为参数。这是一个糟糕的建议。如果您要安装一个应用程序,其中有十几个迁移到一个空白数据库,那么您永远不应该运行
migrate
,因为这将是一个巨大的时间浪费@Don Mums的答案是正确的。您的意思是“makemigrations”+1对于实际解决方案,这应该是答案。虽然在从头开始积极开发时,您应该对生产版本使用迁移,但只清除数据库并重新开始比运行500次迁移更容易。每当我进行更改时,我通常运行
dropdb mydb&&createdb mydb&&python manage.py migrate--run syncdb
--run syncdb
似乎只在没有迁移的应用程序上运行。我使用了以下解决方法:
find-name“migrations”-exec mv{}/{uuuu init{uuuu.py{}/{uu init}&&python manage.py migrate&&python manage.py migrate--run syncdb&&find-name“migrations”-exec mv{}/_init{}/__init}/__init __;.py\&&python manage.py migrate--假