我想在我的数据库中清除一个表,所以我删除了这个表。通常我会执行manage.py syncdb来重新创建它。然而,here的回答是不再使用syncdb。那么,我该怎么做呢?
发布于 2012-11-24 00:12:39
这是一个相当晚的回应,但对于那些会遇到同样问题的人(就像我一样)。
通常,要删除由south管理的应用程序的db_tables,您应该使用:
python manage.py migrate appname zero但是如果你手动将它们放到数据库中,让south知道这一点。
python manage.py migrate appname zero --fake当然,还要重新创建这些表
python manage.py migrate appname发布于 2011-08-26 09:46:53
也有同样的问题。不确定这是否在所有情况下都有效,但以下是我所做的:
在INSTALLED_APPS
中,从INSTALLED_APPS
中将"south“注释掉”
瞧!
您的里程可能会有所不同...
发布于 2011-03-17 00:15:49
嗯,this exchange回答了我的问题:
如果你手动修改数据库,South不会注意到-它跟踪数据库版本的唯一方法是south_migrationhistory表,所以如果你在背后摆弄它,你有责任修复它。
我最后做的是注释掉我放在那里的模型,做一个schemamigration,创建一个空的无列表(所以South有东西要放),migrateing,然后取消对模型的注释,schemamigration和migrateing。比起丢掉桌子和syncdb,这有点烦人,但是,好吧。
https://stackoverflow.com/questions/5328053
复制相似问题