我用 Doctrine ORM 更新了 Symfony 1.4。
我正在寻找安装插件 sfDoctrineGuard。我按照这里的说明操作: http ://www.symfony-project.org/plugins/sfDoctrineGuardPlugin
在这一步之前一切正常:symfony 学说:insert-sql
当我收到错误时:
SQLSTATE [HY000]:一般错误:1005 无法创建表 'kickboxing.#sql-2b5b_a8f'(错误 150)查询失败“ALTER TABLE profile ADD CONSTRAINT profile_sf_guard_user_id_sf_guard_user_id FOREIGN KEY (sf_guard_user_id) REFERENCES sf_guard_user(id)
它似乎确实创建了一些表:
profile sf_guard_forgot_password sf_guard_group sf_guard_group_permission sf_guard_permission sf_guard_remember_key sf_guard_user sf_guard_user_group sf_guard_user_permission
有任何想法吗?
更新:我发现这确实与教义/symfony 无关。问题似乎与mysql有关,我在MySQL中运行了上面的alter命令,当然我得到了同样的错误。
作为参考,我已经安装了 Debian Squeeze 和 mysql 5。
UPDATE2:当我跑步时
SHOW INNODB STATUS;
我明白了
最新的外键错误
110927 7:58:35 表 _kickboxing/#sql-2b5b_a86 的外键约束错误:外键 (sf_guard_user_id) REFERENCES sf_guard_user(id):在被引用列显示为第一列的被引用表中找不到索引,或表中的列类型与引用表中的约束不匹配。请注意,使用 >= InnoDB-4.1.12 创建的表中 ENUM 和 SET 的内部存储类型发生了变化,并且旧表中的此类列不能被新表中的此类列引用。有关正确的外键定义,请参阅http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html 。