在模型中进行了一些更改(例如,模型中的新字段和新模型)之后,将这些更改反映到我填充的数据库的最佳方式是什么?在django中迁移数据的最佳方式
PS:我想看看在一个地方额定许多解决方案。显然更多的解决方案已经上市here。
在模型中进行了一些更改(例如,模型中的新字段和新模型)之后,将这些更改反映到我填充的数据库的最佳方式是什么?在django中迁移数据的最佳方式
PS:我想看看在一个地方额定许多解决方案。显然更多的解决方案已经上市here。
我问过类似的问题here,得到了相当多的答案。
有相当多的做,像手工做的倾销与SQL重装,使用固定装置或使用“新兴”模式进化包的Django的一个途径:
取决于变更的范围。如果它超出了ALTER,那么你正在做大手术。备份模型以及数据库,以便您可以返回。
我的首选是将您的新(修正,更正,扩大)模型作为一个新的应用程序。它不会有URL或任何东西,只是一个模型。
将数据从旧模型中拉出后,可以使用首选的新格式重建数据库。
用manage.py sqlall查看新列的参数是什么,并用Alter table语句手动将它们添加到数据库中。这样你就不必重做数据库;它需要一些SQL知识,但...
看看here(向下滚动到“在更改数据库模式”)
另一种技术是使用dumpdata和loaddata参数进行管理。PY,在两者之间杀死你的数据库:
python manage.py dumpdata > dump.json
python manage.py loaddata dump.json
见manage.py docs更多。
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
然后将文件迁移到数据库中。
的Django现在有自己内置的迁移,在记载:
`蟒蛇manage.py sqlreset appname`打印必要的SQL语句,但不实际运行它们。 – 2008-10-17 13:07:12