如何在django 1.4.2中执行syncdb? 即在数据库中有数据,如何在更新数据模式时再次加载模型?
提前致谢
答案 0 :(得分:6)
当您使用旧版django
时,您需要安装South
模块并为您的应用进行迁移。
要安装South,您可以使用pip
或easy_install
pip install 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
答案 1 :(得分:3)
感谢Amyth提示。
顺便说一句命令有点不同,我会在这里发布一个10x测试结果。
使用南
1.设置模型
python manage.py schemamigration models --initial
python manage.py dumpdata -e contenttypes -e auth.Permission --natural > data.json
python manage.py syncdb
python manage.py migrate models
python manage.py loaddata data.json
python manage.py schemamigration models --auto
python manage.py migrate models
在模型架构中进行的每次更改后
几点说明
1.卸载数据库并重新加载它是必不可少的,因为如果不这样做,第一次迁移将告诉您已经拥有这些模型。
2. -e contenttypes -e auth.Permission --natural
中的dumpdata
参数是必不可少的,否则在执行loaddata时会抛出异常。