在 phppgadmin 中创建数据库时出错
Posted
技术标签:
【中文标题】在 phppgadmin 中创建数据库时出错【英文标题】:Error on creating database in phppgadmin 【发布时间】:2012-11-20 06:48:37 【问题描述】:我有 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
【问题讨论】:
哇,6 个月后它仍然没有修复。 【参考方案1】:快速修复:(与我的版本 (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
【讨论】:
很好的解决方案!我将它应用到 /usr/local/cpanel/base/3rdparty/phpPgAdmin/classes/database/* 中的 cpanel 并且效果很好 也在 Postgres92.php 中将类名更改为 Postgres92【参考方案2】:我于 2012 年 12 月 12 日晚上在运行 PostgreSQL 9.2.1 的 Mac Mini 服务器上更新到 Mountain Lion。当我发现这个问题时,我遇到了同样的问题。当我对这个问题进行搜索时,我发现了以下关于这个问题的错误跟踪器。
http://sourceforge.net/tracker/?func=detail&aid=3570272&group_id=37132&atid=418980
其中一个 cmets 建议从 github 下载开发人员分支,以通过 https://github.com/phppgadmin/phppgadmin/zipball/master 解决此问题。我这样做并将其复制到 /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 的稳定版本。希望他们很快就会。
【讨论】:
【参考方案3】:简而言之:表pg_tablespace
does not have that column in 9.2。
现在看来应该通过其他方式获取信息,如the mailing list中提到的。
还要注意official phpPgAdmin page 中,PostgreSQL 支持的最新版本是 9.0。
【讨论】:
【参考方案4】:对于“快速修复”,在 (2) 之后再添加一个步骤:
将 Postgres92.php 中的类名从 Postgres84 更改为 Postgres92。
【讨论】:
以上是关于在 phppgadmin 中创建数据库时出错的主要内容,如果未能解决你的问题,请参考以下文章
在 Cloudera Impala(虚拟机)中创建数据库时出错
在 Xcode 8.2 beta 中创建 NSManaged 子类时出错