Temos vários bancos de dados 4.2.3.2 Greenplum que executam o PostGIS 1.4. Estamos tentando colocar esses bancos de dados em uma versão mais recente do Greenplum, como 4.3.8.1 ou a versão relançada de 4.3.9.1, mas estamos enfrentando uma série de problemas ao tentar atualizar o PostGIS para a versão 2.0. Tentamos várias maneiras diferentes de atualizar o banco de dados sem comprometer os dados e as funções que dependem do PostGIS 1.4, mas parece que quando executamos o utilitário gppkg com as novas extensões do PostGIS, obtemos apenas erros semelhantes ao seguinte:
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...
Também executamos o gppkg passando o sinalizador -u, com resultados semelhantes:
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...
Uma grande advertência também pode estar relacionada ao fato de que apenas as versões 4.2.6.X a 4.2.8.X do Greenplum suportam as versões 1.4 e 2.0 do postGIS . Neste ponto, estamos procurando alguma orientação sobre como proceder na esperança de que outros possam ter encontrado alguns desses obstáculos.
Temos tíquetes com o fornecedor, Pivotal, mas eles não estão sendo frutíferos, então estou postando aqui na esperança de que a comunidade tenha alguma direção para me indicar.
Obrigado,
John
Minha aposta é que o
postgis-ossv2.0.3_pv2.0.1_gpdb4.3orca-rhel5-x86_64.gppkg
pacote tem um bug e não implementou opostupdate
conforme definido na classe Gppkg . A TAG é opcional(SPECFILE_OPTIONAL_TAGS = ... 'postupdate'] )
para parecer que está chamandoVerifique se o script de atualização ($GPHOME/share/postgresql/contrib/postgis-2.0/postgis_upgrade_20_minor.sql) existe nesse local. Detalhes do pacote .
A partir dessa especificação:
Além disso, você pode querer tentar a
--clean
opçãoO caminho de atualização que identificamos é a própria definição de kludgy , mas procura obter todos os dados com um resultado final de um banco de dados atualizado e da extensão PostGIS atualizada. As etapas (reconhecidamente Rube Goldberg-ish) são as seguintes e são necessárias para cada banco de dados no servidor que está sendo atualizado contendo dados PostGIS:
pg_dump
todas as tabelas contendo dados relacionados ao PostGIS para cada banco de dados no servidorunstall_postgis.sql
o script nos bancos$GPHOME/share/postgrestql/contrib
de dados que tinham tabelas PostGIS na etapa 1%> gppkg -r postgis-1.0
)%> gppkg -i postgis-ossv2.0.3_pv2.0.1_gpdb4.3orca-rhel5-x86_64.gppkg
)postgis.sql
o script em$GPHOME/share/postgresql/contrib/postgis-2.0
cada banco de dados que tinha tabelas PostGIS na etapa 1pg_restore
todas as tabelas exportadas na etapa 1Também estamos incluindo algumas etapas não listadas aqui em um servidor intermediário para evitar uma atualização no local, de modo que tenhamos um ponto de recuperação rápido. O processo é um pouco complicado, mas até agora os testes parecem indicar que está funcionando sem problemas óbvios.
Espero que isso ajude alguém no futuro,
John