1

我一直在 Django 中修改我的模型。但是,在我这样做之后,我必须进入数据库,手动删除表,然后manage.py syncdb. 我试过manage.py reset <<app_name>>了,但它没有下降,然后用新字段重新安装模型。执行此操作的正确方法是什么,或者进入数据库、删除、然后是 syncdb 的最佳方法是什么?

4

1 回答 1

2

您描述的行为在文档中明确提到:

syncdb 只会为尚未安装的模型创建表。它永远不会发出 ALTER TABLE 语句来匹配安装后对模型类所做的更改。对模型类和数据库模式的更改通常涉及某种形式的歧义,在这些情况下,Django 必须猜测要做出的正确更改。在此过程中存在丢失关键数据的风险。

您所追求的是一种用于数据库迁移的工具,这是一个大部分已解决的大问题;-)

所以是的,正如 Marcin 所说,您正在寻找South。或者,您可以尝试Nashvegas并进行小的更改,即使sql_diff是其中的一部分django-extensions也是一个可行的选择。

于 2012-02-02T22:26:43.013 回答