0

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

添加的代码如下:

#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 没有接收更改的事实之外,当我在保存上述更改后运行服务器时,它全部中断,并给出错误:'当前事务被中止,命令被忽略,直到事务块结束'

我究竟做错了什么?

4

1 回答 1

0

尽管存在于您的askbot应用程序中,但此代码会更改 Djangoauth应用程序中的模型。所以根据南的说法,唯一改变的是auth应用程序。鉴于此应用程序并非由 South 管理,您会遇到问题。

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

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

于 2014-06-12T12:24:51.770 回答