在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中引入的makemigrations
和migrate
命令
syncdb
与数据库迁移有一些问题。 所以,在django 1.7 makemigrations
, migrate
和migrate
已经被引入。 现在在Django 1.9 syncdb
已被弃用。 尝试
1. python manage.py makemigrations
,用于检测数据库中的更改,并在migrations文件夹中创build一个.py
文件2. python manage.py migrate
将python manage.py migrate
应用到数据库
- 授权证书剥离 – django,弹性beanstalk,oauth
- Django:如何防止数据库条目的同时修改
- 如何设置Django的项目与Django的存储和亚马逊S3,但与静态文件和媒体文件不同的文件夹?
- 强制为Unicode:需要string或缓冲区,在django admin中进行渲染时findNoneType
- Django和Bootstrap:推荐什么应用程序?
- 一次性Django脚本替代弃用的setup_environ()?
- 如何在生产数据库上运行djangounit testing?
- Django的pipe理员:如何通过一个没有数据库字段的自定义list_display字段进行sorting
- Django和ModelForm上的字段集