在 Django 1.9 中我应该使用什么来代替 syncdb?
What should I use instead of syncdb in Django 1.9?
看看这个:
$ 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)
我 运行 一个 quick google search,但找不到答案 - 我应该使用什么来代替 syncdb
?
您应该使用 django 1.7 中引入的 makemigrations
和 migrate
命令
syncdb
已弃用,因为 the migration system, introduced with django 1.7.
现在您可以使用makemigrations
跟踪您的更改。这会将您的模型更改转换为 python 代码,使它们可部署到另一个数据库。当您需要对数据库进行进一步修改时,可以使用 data migrations.
创建迁移后,您必须应用它们:migrate
.
因此,您应该使用 makemigrations
,而不是 syncdb
,然后使用 migrate
。
更改模型中的某些内容后的开发工作流程:
./manage.py makemigrations
./manage.py migrate
在您的生产系统上:
./manage.py migrate
好处:您不需要为每个更改 运行 migrate
。如果您有多项更改尚未应用,django 将 运行 以正确的顺序为您应用。
您绝对应该使用 migration system. Which lets you track changes in your models.py
, and create migrations for the database. The migration system uses the commands makemigrations
to create migrations and migrate
来迁移数据库。
如果出于某种原因您需要以相同的方式创建数据库 syncdb
是否有命令标志导致 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
检测数据库中的变化并在迁移文件夹中创建一个 .py
文件
2. python manage.py migrate
将迁移应用到数据库
看看这个:
$ 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)
我 运行 一个 quick google search,但找不到答案 - 我应该使用什么来代替 syncdb
?
您应该使用 django 1.7 中引入的 makemigrations
和 migrate
命令
syncdb
已弃用,因为 the migration system, introduced with django 1.7.
现在您可以使用makemigrations
跟踪您的更改。这会将您的模型更改转换为 python 代码,使它们可部署到另一个数据库。当您需要对数据库进行进一步修改时,可以使用 data migrations.
创建迁移后,您必须应用它们:migrate
.
因此,您应该使用 makemigrations
,而不是 syncdb
,然后使用 migrate
。
更改模型中的某些内容后的开发工作流程:
./manage.py makemigrations
./manage.py migrate
在您的生产系统上:
./manage.py migrate
好处:您不需要为每个更改 运行 migrate
。如果您有多项更改尚未应用,django 将 运行 以正确的顺序为您应用。
您绝对应该使用 migration system. Which lets you track changes in your models.py
, and create migrations for the database. The migration system uses the commands makemigrations
to create migrations and migrate
来迁移数据库。
如果出于某种原因您需要以相同的方式创建数据库 syncdb
是否有命令标志导致 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
检测数据库中的变化并在迁移文件夹中创建一个 .py
文件
2. python manage.py migrate
将迁移应用到数据库