我有PostgreSQL 9.2.0。单击创建数据库时,它显示以下错误:
SQL error:
ERROR: column "spclocation" does not exist
LINE 1: ...pg_catalog.pg_get_userbyid(spcowner) AS spcowner, spclocatio...
^
In statement:
SELECT spcname, pg_catalog.pg_get_userbyid(spcowner) AS spcowner, spclocation,
(SELECT description FROM pg_catalog.pg_shdescription pd WHERE pg_tablespace.oid=pd.objoid) AS spccomment
FROM pg_catalog.pg_tablespace WHERE spcname NOT LIKE $$pg_%$$ ORDER BY spcname
快速修复:(适用于我的版本 (5.0.3)/pg 9.2.3 )
- 更改为
/classes/database
- 将
Postgres84.php
复制到Postgres92.php
- 打开
Connection.php
- 在
// Detect version and choose appropriate database driver
开关处添加线路case '9.2': return 'Postgres92'; break;
。 - 打开
Postgres.php
和复制功能getTablespaces
+getTablespace
- 打开
Postgres92.php
并将函数粘贴到类中 -
在两个函数中将"
, spclocation,
"替换为", pg_tablespace_location(oid) as spclocation,
"。 -
在 Postgres92 中.php将类名更改为 Postgres92
我在 2012 年 12 月 12 日晚上更新了运行 PostgreSQL 9.2.1 的 Mac Mini Server 上的 Mountain Lion。 当我发现这个问题时,我遇到了同样的问题。 当我搜索此问题时,我发现了以下有关此问题的错误跟踪器。
http://sourceforge.net/tracker/?func=detail&aid=3570272&group_id=37132&atid=418980
其中一条评论建议从 github 下载开发人员分支以从 https://github.com/phppgadmin/phppgadmin/zipball/master 解决此问题。 我这样做并将/Library/Server/Web/Data/Sites/Default 复制到/Library/Server/Web/Data/Sites/Default 并重命名了该文件夹。 我在/conf/config.inc.php 中将 $conf['servers'][0]['host'] 修改为 127.0.0.1。 我想我不得不复制config.inc.php-dist。 我已经成功地创建了数据库。 截至 12 月 12 日,他们还没有发布 9.2 的稳定版本。 希望他们很快就会。
简而言之:表 pg_tablespace
在 9.2 中没有该列。
正如邮件列表中提到的,现在似乎应该从其他方式获取信息。
另请注意,在官方的 phpPgAdmin 页面中,最新的 PostgreSQL 支持版本是 9.0。
对于"快速修复",在 (2) 之后再添加一个步骤:
将 Postgres92 中的类名.php从 Postgres84 更改为 Postgres92。