11

PostgreSQL をバージョン 9.2.4 から 9.3.1 に (OS X の自作経由で) アップグレードする過程で、奇妙な問題に遭遇しました。これらは私がこれまでに行った手順です

  • PostgreSQL、PostGIS、および必要なライブラリがインストールされている (エラーなし)
  • initdb新しいデータベースで実行する
  • 両方のサーバーを停止しました
  • ランニングpg_upgrade

pg_upgrade必要なチェックを実行し、古いクラスターのダンプを作成しますが、新しいクラスターにインポートすると、次のエラーが発生します。

> ./pg_upgrade -b /usr/local/Cellar/postgresql/9.2.4/bin/ -B /usr/local/Cellar/postgresql/9.3.1/bin -d /usr/local/var/postgres/ -D /usr/local/var/postgres9.3.1 -u postgres
Performing Consistency Checks
-----------------------------
Checking cluster versions                                   ok
Checking database user is a superuser                       ok
Checking for prepared transactions                          ok
Checking for reg* system OID user data types                ok
Checking for contrib/isn with bigint-passing mismatch       ok
Creating dump of global objects                             ok
Creating dump of database schemas
                                                            ok
Checking for presence of required libraries                 fatal

Your installation references loadable libraries that are missing from the
new installation.  You can add these libraries to the new installation,
or remove the functions using them from the old installation.  A list of
problem libraries is in the file:
    loadable_libraries.txt

Failure, exiting

PostgreSQL 9.3.1 は、互換性のない PostGIS 2.0 を使用しようとしているように見えます。

Could not load library "$libdir/postgis-2.0"
ERROR:  could not access file "$libdir/postgis-2.0": No such file or directory

Could not load library "$libdir/rtpostgis-2.0"
ERROR:  could not access file "$libdir/rtpostgis-2.0": No such file or directory

誰かが同じ問題に遭遇しましたか?

4

1 に答える 1

1

私は最近この問題に遭遇し、postgis を再インストールするとうまくいきました。つまり、ソース ファイルを tar したフォルダーに移動し (ソースから postgis をインストールした場合)、再実行します。

./configure
make
sudo make install

最新バージョンの postgresql をインストールした場合、postgis は新しい postgresql の拡張フォルダーにインストールする必要があります。

/usr/share/postgresql/xx/extension/

確認するには、次を実行します。

sudo su -l postgres

psql template1 -p 5433

SELECT name, default_version,installed_version 
FROM pg_available_extensions WHERE name LIKE 'postgis%' ;

postgis が正常にインストールされている場合は、「インストール済み」列に示されているバージョン番号が表示されます。pg_upgrade コマンドを実行すると、すべてが正常に動作するはずです。

お役に立てれば。

于 2013-11-27T04:37:35.620 に答える