我刚毕业于Symfony 1.4和Doctrine ORM。
我想安装插件sfDoctrineGuard。我遵循这里的说明:http://www.symfony-project.org/plugins/sfDoctrineGuardPlugin
所有操作都很好,直到这一步: symfony原则:插入-sql。
当我收到错误时:
SQLSTATEHY000:一般错误: 1005无法创建表‘跆拳道’#SQL2b5b_a8f‘(错误150)查询失败“更改表配置文件添加约束profile_sf_guard_user_id_sf_guard_user_id外键(sf_guard_user_id)引用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
有什么想法吗?
更新:我是在发现这真的与教义/塞弗尼无关。问题似乎与mysql有关,我在MySQL中运行了上面的alter命令,当然,我也会遇到同样的错误。
作为参考,我已经安装了Debian压缩程序和mysql 5。
UPDATE2 :当我跑
SHOW INNODB STATUS;我得到了
最新外键错误
110927 7:58:35表_跆拳道/#SQL2b5b_A86:外键(sf_guard_user_id)引用sf_guard_user(id):在引用的表中找不到索引,其中引用的列显示为表中的第一列,或者表中的列类型与约束不匹配。注意,在用>= InnoDB4.1.12创建的表中更改了ENUM和SET的内部存储类型,新表中的此类列不能引用旧表中的此类列。有关正确的外键定义,请参见http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html。
发布于 2011-09-27 10:55:16
看起来像是mySql的问题。通过登录mysql控制台并运行,您可以获得对错误的完整(更好的)描述。
显示无害状态
然后查找最新的外键错误,以了解出了什么问题。
发布于 2012-01-18 14:41:28
我使用的是Symfony 1.4.16,为了配置sfDoctrineGuardPlugin,我遵循了prettyscripts.com,但是schema.yml应该如下所示;
注意: user_id是整数(8),这就是sf_user_id的id列类型的大小。
sfGuardUserProfile:
tableName: sf_guard_user_profile
actAs: { Timestampable: ~ }
options: { collate: utf8_unicode_ci, charset: utf8 }
columns:
id: { type: integer(8), primary: true, autoincrement: true }
user_id: { type: integer(8), notnull: true }
fullname: { type: string(80) }
email: { type: string(100) }
relations:
User:
class: sfGuardUser
foreign: id
local: user_id
type: one
onDelete: cascade
foreignType: one
foreignAlias: Profilehttps://stackoverflow.com/questions/7567764
复制相似问题