带web2py的MySQL:外键约束失败

时间:2014-06-11 09:21:19

标签: mysql web2py web2py-modules

我正在尝试将mysql与我的web2py app连接:主屏幕即将到来,但在注册时我收到以下错误:

<class 'gluon.contrib.pymysql.err.IntegrityError'> (1452, u'Cannot add or update a child row: a foreign key constraint fails (`911_signin`.`auth_membership`, CONSTRAINT `auth_membership_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ON DELETE CASCADE)')

在此之前,我使用的是sqlite,一切正常,因为它在auth表中显示错误,我无法做任何事情。 (Auth表是在应用程序中预定义的,所以我的代码中必定存在一些错误,但我如何调试或从此处继续?)

我尝试通过将dict(foreign_key_checks = 0)传递给adapter_args暂时禁用外键,但我仍然遇到同样的错误。

当我尝试使用cpdb.py将数据从sqlite传输到mysql时使用:

python cpdb.py -f ../applications/911_signin/databases -y sqlite://storage.sqlite -Y mysql://user:pass@127.0.0.1/db -d ../gluon

我收到以下错误:

EXCEPTION: could not make a copy of the database
'Cannot resolve reference auth_group in auth_permission definition'

传输数据是目前的第二优先,我该如何处理参考错误?

1 个答案:

答案 0 :(得分:1)

问题在于自定义身份验证定义,我在auth.define_tables之后执行,导致在定义之前引用表。