如果我想升级(更改)我的数据库模式(通过将它们添加到django模型中来向表添加新字段)而不丢失这些表中的数据,那么最佳解决方案是什么?"syncdb"当然没有添加它们,所以我需要你的建议如何更改表而不删除它们并使用syncdb重新创建.
谢谢,伊格纳斯
Jam*_*ury 10
当南方不是一个选项时,我只需手动编写脚本以进行小的更改.和我使用的大
./manage.py dumpdata appname
Run Code Online (Sandbox Code Playgroud)
http://docs.djangoproject.com/en/dev/ref/django-admin/#dumpdata-appname-appname-appname-model
把它扔进一个文件.运行正则表达式替换以更新任何添加/删除的字段,然后可以重置该应用程序.我不得不承认我有一段时间没有这样做,但如果需要,我可以得到一些特定的代码来为你做这件事.
它加载回来 loaddata
编辑
Django转储单个模型的数据? 这个问题是类似的,可能有我正在谈论的信息.
如果你需要我仍然可以告诉我,我会为你挖掘我的旧脚本(或写出一个很简单的脚本).
UPDATE
./manage.py dumpdata appname --indent=4 > appname.json
#open your fav text editor and do a find/replace
./manage.py reset appname
./manage.py loaddata appname.json
Run Code Online (Sandbox Code Playgroud)
应该这样做.当您执行查找替换时,您只需删除不再具有的字段并添加不可为空的字段.(至少).
注意:-- indent = 4很好地格式化了一切.这意味着4个空间../manage.py重置仅适用于django 1.3中的pre django 1.3(gah!),你必须做一个./manage dbshell和drop table.从命令中找到sql ./manage.py sqlreset appname.
| 归档时间: |
|
| 查看次数: |
9525 次 |
| 最近记录: |