答案 0 :(得分:23)
另一种技术是使用dumpdata和loaddata参数来管理。在中间杀死你的数据库:
python manage.py dumpdata > dump.json
python manage.py loaddata dump.json
有关详情,请参阅manage.py docs。
答案 1 :(得分:17)
我问了一个类似的问题here并得到了不少答案。
有很多方法可以做到这一点,例如手动使用SQL进行转储和重新加载,使用fixture或使用Django的“新兴”架构演变包之一:
答案 2 :(得分:3)
取决于更改的范围。如果它超出了ALTER,那么你正在进行大手术。备份模型和数据库,以便您可以返回。
我的偏好是将您的新(修订,更正,扩展)模型作为新应用程序。它不会有URL或任何东西,只是一个模型。
从旧模型中提取数据后,您可以使用首选的新格式重建数据库。
答案 3 :(得分:3)
Django现在有自己的内置迁移,记录在:
答案 4 :(得分:2)
使用manage.py sqlall查看新列的参数是什么,并使用Alter表语句手动将它们添加到数据库中。这样您就不必重做数据库;它虽然需要一些SQL知识......
查看here(向下滚动到“对数据库架构进行更改”)
答案 5 :(得分:0)
Perform these steps in order may help you
:
For more details,
clickhere:http://south.readthedocs.org/en/latest/
1)python manage.py schemamigration apps.appname --initial
上面的步骤创建了默认的迁移文件夹。
2)python manage.py migrate apps.appname --fake
生成虚假迁移。
3)python manage.py schemamigration apps.appname --auto
然后您可以根据需要添加字段并执行上述命令。
4)python manage.py migrate apps.appname
然后将文件迁移到数据库。