0

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

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

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

4

2 回答 2

1

Django 不会改变已经存在的表,他们甚至在文档中这样说。这样做的原因是django不能保证不会有信息丢失。

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

你甚至可以手动更新你的数据库,如果它是一个很小的变化并且你不想打扰迁移工具,虽然我建议使用一个。

于 2013-01-10T08:20:17.480 回答
0

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

于 2013-01-10T08:53:54.023 回答