2012-11-20 3 views
7

У меня PostgreSQL 9.2.0. При нажатии создать базу данных он показывает следующее сообщение об ошибке:Ошибка при создании базы данных в phppgadmin

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 
+1

Ничего себе, через 6 месяцев его еще не зафиксировано. – IvanP

ответ

4

Я обновился до Mountain Lion на моем Mac Mini Server вечером 12/12/2012, который запускает PostgreSQL 9.2.1. У меня была такая же проблема, когда я нашел этот вопрос. Когда я сделал поиск по этой проблеме, я нашел следующий трекер ошибок по этому вопросу.

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 и переименовал папку. Я изменил $ conf ['servers'] [0] ['host'] на 127.0.0.1 в /conf/config.inc.php. Думаю, мне пришлось копировать config.inc.php-dist. Мне удалось создать базы данных. По состоянию на 12/12 они не выпустили стабильную версию для 9.2. Надеюсь, они скоро.

2

Короче: таблица pg_tablespacedoes not have that column in 9.2.

Кажется, что информация должна быть получена из других средств, как указано в the mailing list.

Также обратите внимание на то, как в official phpPgAdmin page последней версией, поддерживаемой PostgreSQL, является 9.0.

13

Quick Fix (работал с моей версии (5.0.3)/пг 9.2.3)

  1. изменение /classes/database
  2. копия Postgres84.php на Postgres92.php
  3. открыт Connection.php
  4. добавить строку case '9.2': return 'Postgres92'; break; на переключателе // Detect version and choose appropriate database driver.
  5. открытый Postgres.php и копирование getTablespaces + getTablespace
  6. открытого Postgres92.php и вставить функции в класс
  7. заменить «, spclocation,» с «, pg_tablespace_location(oid) as spclocation,» в обеих функциях.

  8. в Postgres92.php имя класса изменение Postgres92

+0

Отличное решение! Я применил это к cpanel в/usr/local/cpanel/base/3rdparty/phpPgAdmin/classes/database/*, и он отлично работал –

+1

Также в Postgres92.php измените имя класса на Postgres92 – Alekc

1

И для 'Quick Fix', добавьте еще один шаг после (2):

изменить имя класса в Postgres92.php от Postgres84 - Postgres92.

Смежные вопросы