PostGIS Extension Error – Resolving ‘Could Not Open Extension Control File’ Error

installationpostgispostgresql-10

I am receiving this error when I create extension postgis;:

SQL Error [58P01]: ERROR: could not open extension control file
"C:/POSTGR~1/10.5/pg10/../pg10/share/postgresql/extension/postgis.control":
No such file or directory

The cause appears to be an incorrect path (an extra postgresql). It should be:
"C:/POSTGR~1/10.5/pg10/../pg10/share/extension/postgis.control"

This PostGIS installer that I used is: http://download.osgeo.org/postgis/windows/pg10/postgis-bundle-pg10x64-setup-2.5.0-1.exe

And I am running PostgreSQL 10.5 on x86_64-pc-mingw64, compiled by gcc.exe (Rev5, Built by MSYS2 project) 4.9.2, 64-bit

While my question is a near duplicate of https://gis.stackexchange.com/a/71476/31, the issue is specific to PostgreSQL 10/PostGIS 2.5, and I don't think the answer is necessarily the same (since there is no spatial_ref_sys.sql file).

Is there way to correct the error? If not, which files in the extension directory have to run (and in which order) to create the PostGIS extension?

Best Answer

I found this question and answer on stackoverflow.com for PostgreSQL 9.6: https://stackoverflow.com/questions/42806784/how-to-alter-the-path-for-postgres-looking-for-extensions.

This answer also works for PostgreSQL 10.

I first moved all files from .\share\extension to .\share\postgresql\extension and re-ran the create extension postgis. As expected, I received this error: ERROR: could not access file "$libdir/postgis-2.5": No such file or directory. Which I figured, but I wanted to see what the exact error would be.

Then I moved the files in .\lib into .\lib\postgresql and now the create extension postgis works.