我已经在主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没有接收更改,我在运行服务器之后保存上述更改后,所有内容都会中断,发出错误:'当前事务中止,命令被忽略,直到事务块结束'
我做错了什么?
答案 0 :(得分:0)
尽管生活在askbot
应用中,此代码会更改Django的auth
应用中的模型。所以根据南方,唯一改变的是auth
应用程序。鉴于此应用程序不是由South管理,您遇到了问题。
我不建议将迁移用于第三方应用程序,因为迁移在将代码移动到不同的部署环境时会丢失。
现有部署的最佳选择是手动将列添加到User
数据库表。新部署将自动获取新字段并在syncdb
命令期间创建列。