转换为postgres后Yii Rights模块错误

时间:2014-06-23 07:30:35

标签: php mysql postgresql yii rights

我已将我的应用程序数据库从mysql更改为postgres,因为权限模块提供了异常:

`CDbCommand failed to execute the SQL statement: SQLSTATE[42P01]: Undefined table: 7 
 ERROR: relation "authitem" does not exist
LINE 2: FROM AuthItem t1
^. The SQL statement executed was: SELECT
name,t1.type,description,t1.bizrule,t1.data,weight
FROM AuthItem t1
LEFT JOIN Rights t2 ON name=itemname
ORDER BY t1.type DESC, weight ASC `

我已经查看了表格的名称,它与“案例敏感”完全相同。

1 个答案:

答案 0 :(得分:1)

如果数据库中的表名是AuthItem而不是authitem,则查询应为:

FROM "AuthItem" t1

请注意双引号。

看起来您正在使用的任何内容都将表创建为CREATE TABLE "AuthItem",但随后将其查询为SELECT ... FROM AuthItem。这些是不同的东西。是的,这很令人困惑,但这就是SQL标准所说的 - 案例在未加引号的标识符上折叠,并且在引用的标识符上保留