Python South没有获取add_to_class()方法中所做的更改

时间:2014-06-12 08:44:13

标签: python django postgresql django-south askbot

我已经在主Django' User'中添加了一个字段。模型,通过将User.add_to_class()插入Askbot的模型。 init

添加的代码如下:

#askbot-devel/askbot/models/__init__.py
User.add_to_class('show_active_status', models.BooleanField(default = False))
然后我运行South的schemamigration

$ ./manage.py schemamigration askbot --auto
Nothing seems to have changed.

正如您所看到的,它并没有发现变化。

我检查了数据库,一切都没有改变。

此外,我还检查过我正在使用正确的 init 文件,因为除了事实上South没有接收更改,我在运行服务器之后保存上述更改后,所有内容都会中断,发出错误:'当前事务中止,命令被忽略,直到事务块结束'

我做错了什么?

1 个答案:

答案 0 :(得分:0)

尽管生活在askbot应用中,此代码会更改Django的auth应用中的模型。所以根据南方,唯一改变的是auth应用程序。鉴于此应用程序不是由South管理,您遇到了问题。

我不建议将迁移用于第三方应用程序,因为迁移在将代码移动到不同的部署环境时会丢失。

现有部署的最佳选择是手动将列添加到User数据库表。新部署将自动获取新字段并在syncdb命令期间创建列。