Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

244
Visualizações
¿Cómo reescribir las funciones de postgres que hacen referencia a postgis lib?

Recientemente actualicé mi versión de postgres de 9.4 a 10.1. Al mismo tiempo, quería actualizar postgis de la versión 2.1 a la versión 3.

Lo que hice fue volcar mi base de datos y restaurarla en mi nuevo postgres. Pero aquí está el problema al que me enfrento. Dado que muchas funciones hacen referencia a la biblioteca postgis con AS '$libdir/postgis-2.1' , aparece un error que dice que no se puede encontrar $libdir/postgis-2.1.

Por supuesto que no puede, ya que el directorio de bibliotecas de mi nuevo postgres solo contiene postgis-3.so. Pero entonces, ¿cómo decirle a mi función que use esta?

Ya encontré un truco, creando un enlace llamado postgis-2.1.so y apuntando a postgis-3.so. Pero esta es realmente una forma fea de hacerlo, y no quiero tener que crear un nuevo enlace cada vez que actualice postgis.

También traté de volcar funciones, sed y restaurarlo así:

 pg_dump -U postgres -Fc -s -f db_schema my_db sed -i -e 's/postgis-2.1/postgis-3/g' db_schema pg_restore -l db_schema | grep FUNCTION > functions pg_restore -U postgres -d my_db -L functions db_schema

Pero parece que a pg_restore no le gusta el hecho de que sedé este archivo ya que recibo este error:

pg_restore: [archivador personalizado] no pudo leer desde el archivo de entrada: final del archivo

¿Hay una forma limpia de hacer esta actualización o mi enlace simbólico es la única solución aquí?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

¿Has intentado seguir la documentación ?

Parece que te falta habilitar PostGIS .

 -- Enable PostGIS (as of 3.0 contains just geometry/geography) CREATE EXTENSION postgis; -- enable raster support (for 3+) CREATE EXTENSION postgis_raster; -- Enable Topology CREATE EXTENSION postgis_topology; -- Enable PostGIS Advanced 3D -- and other geoprocessing algorithms -- sfcgal not available with all distributions CREATE EXTENSION postgis_sfcgal; -- fuzzy matching needed for Tiger CREATE EXTENSION fuzzystrmatch; -- rule based standardizer CREATE EXTENSION address_standardizer; -- example rule data set CREATE EXTENSION address_standardizer_data_us; -- Enable US Tiger Geocoder CREATE EXTENSION postgis_tiger_geocoder;
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda