Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

250
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!