修改django模型

时间:2013-01-10 05:00:02

标签: django django-models django-database

我自己测试了一下。我有Django模型,数据库中已有模型的实例。

然后我向模型添加了一个虚拟整数字段并运行manage.py syncdb。检查了数据库,表中没有任何反应。我没有看到添加额外的字段。

这是预期的行为吗?修改模型的正确方法是什么,以及如何改变数据库中已有的数据?

2 个答案:

答案 0 :(得分:1)

Django不会改变现有的表,他们甚至会在文档中这样说。原因是django无法保证不会丢失任何信息。

如果要更改现有表,则有两个选项。删除它们并再次运行syncdb,但如果要保留它,则需要以某种方式存储数据。其他选项是使用迁移工具为您执行此操作。 Django可以向您展示新数据库模式的SQL,您可以将其与当前版本的数据库区分开来以创建更新脚本。

您甚至可以手动更新数据库,如果这是一个小小的更改,并且您不想打扰迁移工具,但我建议您使用它。

答案 1 :(得分:1)

请使用south进行任何类型的更改以反映到您的数据库表中, 这里是使用南方的链接 Link for South documentation