如何修复phpPgAdmin中的“错误:列relhasoids不存在”?

Lui*_*eño 7 postgresql phppgadmin

我正在使用新版本的PostgreSql更新 Linux 服务器,当我浏览表格时,我在phpPgAdmin 中有一条错误消息。

运行 Apache 2.4.41、PHP 7.3.11 的 Ubuntu 18.04.3 LTS 服务器,当我更新到PostgreSQL 12.0phpPgAdmin 7.12.0时出现错误。使用 PostgreSQL 11.5 和 phpPgAdmin 5.6 我没有这个问题。

我希望使用 phpPgAdmin 将存储在表中的数据可视化,但实际输出是:

    SQL error:
ERROR:  column «relhasoids» does not exist
LINE 1: SELECT relhasoids FROM pg_catalog.pg_class WHERE relname='pr...

    In statement:
SELECT relhasoids FROM pg_catalog.pg_class WHERE relname='product'
            AND relnamespace = (SELECT oid FROM pg_catalog.pg_namespace WHERE nspname='public')
Run Code Online (Sandbox Code Playgroud)

Lui*_*eño 11

编辑文件/usr/share/phppgadmin/classes/database/Postgres.php并评论line 1045 to line 1054 错误消失:

function hasObjectID($table) {
    $c_schema = $this->_schema;
    $this->clean($c_schema);
    $this->clean($table);
/*
    $sql = "SELECT relhasoids FROM pg_catalog.pg_class WHERE relname='{$table}'
        AND relnamespace = (SELECT oid FROM pg_catalog.pg_namespace WHERE nspname='{$c_schema}')";

    $rs = $this->selectSet($sql);
    if ($rs->recordCount() != 1) return null;
    else {
        $rs->fields['relhasoids'] = $this->phpBool($rs->fields['relhasoids']);
        return $rs->fields['relhasoids'];
    } */
}
Run Code Online (Sandbox Code Playgroud)