当一个可重用的south应用有user_post_save信号时,在初始syncdb上出现OperationalErro



我有一个应用程序,它集成了django- invite的分支版本,它修改了原始模型。因此,它需要使用south来迁移现有的数据库。

问题:

如果我用一个新数据库重新安装我的应用程序,当初始syncdb发生并且创建了超级用户时,django- invite应用程序接收到user_postrongave信号并尝试创建一个invitation_user…因为它是一个南方的应用程序,它的数据库表还没有被构建,这当然会触发一个数据库错误。

建议用什么方法来处理这个问题?

想法1)在尝试保存之前检查数据库中是否存在表,但这会在每次创建用户时都需要额外的数据库命中

想法2)

Try: 
    invitation_user.save() 
except:
    from django.db import connection
    connection.close()

既然没有人插话,我想最好还是沿用我最初的想法#2:

Try: 
    #code that could fail on new database creation here
except OperationalError:
    from django.db import connection
    connection.close()

我一直在测试它,因为我原来的问题,它似乎工作得很好。

相关内容

  • 没有找到相关文章

最新更新