PostGIS1.4を実行している4.2.3.2Greenplumデータベースがいくつかあります。これらのデータベースを4.3.8.1や再リリースされたバージョンの4.3.9.1などのより新しいバージョンのGreenplumに取り込もうとしていますが、PostGISをバージョン2.0にアップグレードしようとすると問題が発生します。 PostGIS 1.4に依存するデータと関数を損なうことなくデータベースをアップグレードするためのさまざまな方法を試みましたが、新しいPostGIS拡張機能で gppkg ユーティリティを実行するとエラーが発生するだけのようです、次のようになります。
gppkg -i postgis-ossv2.0.3_pv2.0.1_gpdb4.3orca-rhel5-x86_64.gppkg
20160919:13:21:20:024675 gppkg:s-md-pv-gp-01-01:gpadmin-[INFO]:-Starting gppkg with args: -i postgis-ossv2.0.3_pv2.0.1_gpdb4.3orca-rhel5-x86_64.gppkg
20160919:13:21:20:024675 gppkg:s-md-pv-gp-01-01:gpadmin-[CRITICAL]:-gppkg failed. (Reason='__init__() got an unexpected keyword argument 'postupdate'') exiting...
-uフラグを渡してgppkgも実行しましたが、同様の結果が得られました。
gppkg -u postgis-ossv2.0.3_pv2.0.1_gpdb4.3orca-rhel5-x86_64.gppkg
20160919:13:35:52:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[INFO]:-Starting gppkg with args: -u postgis-ossv2.0.3_pv2.0.1_gpdb4.3orca-rhel5-x86_64.gppkg
20160919:13:35:52:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[WARNING]:-WARNING: The process of updating a package includes removing all
20160919:13:35:52:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[WARNING]:-previous versions of the system objects related to the package. For
20160919:13:35:52:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[WARNING]:-example, previous versions of shared libraries are removed.
20160919:13:35:52:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[WARNING]:-After the update process, a database function will fail when it is
20160919:13:35:52:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[WARNING]:-called if the function references a package file that has been removed.
Do you still want to continue ? Yy|Nn (default=N):
> y
20160919:13:35:59:024930 gppkg:s-md-pv-gp-01-01:gpadmin-[CRITICAL]:-gppkg failed. (Reason='__init__() got an unexpected keyword argument 'postupdate'') exiting...
主な警告は、 Greenplumバージョン4.2.6.Xから4.2.8.XはpostGISのバージョン1.4と2.0の両方をサポートしている という事実にも関連している可能性があります。この時点で、他の人がこれらのハードルのいくつかに直面した可能性があることを期待して、どのように進めるかについての方向性を探しています。
ベンダーのPivotalとチケットを持っていますが、これらは実り多いものではないので、コミュニティが私を指し示すことができる方向性があることを願って、ここに投稿します。
ありがとう、
ジョン
私たちが特定したアップグレードパスは、まさに kludgy の定義ですが、アップグレードされたデータベースとアップグレードされたPostGIS拡張機能の両方の最終結果ですべてのデータを取得するように見えます。 (確かにRube Goldberg風の)手順は次のとおりであり、PostGISデータを含むアップグレードされるサーバー上のすべてのデータベースに必要です。
pg_dump
PostGIS関連データを含むすべてのテーブルサーバー上のすべてのデータベース用unstall_postgis.sql
で$GPHOME/share/postgrestql/contrib
スクリプトを実行しますステップ1でPostGISテーブルを持っていたデータベース%> gppkg -r postgis-1.0
)%> gppkg -i postgis-ossv2.0.3_pv2.0.1_gpdb4.3orca-rhel5-x86_64.gppkg
)postgis.sql
で$GPHOME/share/postgresql/contrib/postgis-2.0
スクリプトを実行しますステップ1でPostGISテーブルを持っていた各データベースpg_restore
ステップ1でエクスポートされたすべてのテーブルまた、インプレースアップグレードを回避するために、ここに記載されていないいくつかの手順を中間サーバーに含めているため、迅速な復旧ポイントがあります。このプロセスは少し面倒ですが、これまでのところ、テストでは明らかな問題なく機能していることが示されているようです。
うまくいけば、これは将来誰かを助けるでしょう、
ジョン