如何在 1.4.2 版本中执行 django syncdb?

How to do django syncdb in version 1.4.2?

如何在django 1.4.2中做syncdb? 即在数据库中有数据,如何在更新数据模式时再次加载模型?

提前致谢

由于您使用的是旧版本的 django,因此您需要安装 South 模块并为您的应用程序进行迁移。

要安装 South,您可以使用 pipeasy_install

pip install South

安装 south 模块后,将其放入 django 项目设置中' INSTALLED_APPS

INSTALLED_APPS = (
...
"south"
)

然后您需要先为您的应用程序进行初始迁移。因此,对于名为 example 的应用程序,您可以 运行 命令:

python manage.py makemigrations example --initial
python manage.py migrate

初始迁移创建后,您对模型进行更改,然后进行新迁移并应用它们。

python manage.py makemigrations example --auto
python manage.py migrate

感谢 Amyth 的提示。
顺便说一句,命令有点不同,我将在此处 post 10 倍测试结果。

使用南方
1. 设置模型

python manage.py schemamigration models --initial

  1. 必要时转储数据

python manage.py dumpdata -e contenttypes -e auth.Permission --natural > data.json

  1. syncdb

python manage.py syncdb
python manage.py migrate models

  1. 将数据加载回数据库

python manage.py loaddata data.json

  1. 之后,您可以使用

python manage.py schemamigration models --auto
python manage.py migrate models

在您对模型架构进行每次更改后

一些笔记
1. 卸载数据库并重新加载它是必不可少的,因为如果不这样做,第一次迁移会告诉您已经有了那些模型。
2、dumpdata中的-e contenttypes -e auth.Permission --natural参数是必须的,否则loaddata时会抛异常。