我已经将我的应用程序数据库从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 `

我已经复习了表格的名称,它和“case sensitive”完全一样。

最佳答案

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

FROM "AuthItem" t1

注意双引号。
无论您使用的是什么,都会将表创建为CREATE TABLE "AuthItem",然后将其查询为SELECT ... FROM AuthItem。这些是不同的东西。是的,这很令人困惑,但这就是SQL标准所说的—case被折叠在未引用的标识符上,并保留在引用的标识符上。

关于php - 转换为Postgres后,Yii权限模块错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24360564/

10-10 10:40