In the process of upgrading my PostgreSQL from version 9.2.4 to 9.3.1 (via homebrew on OS X) I came across an odd problem. These are the steps I took so far
- PostgreSQL, PostGIS and required libraries installed (no errors)
- run
initdb
on the new database - stopped both servers
- running
pg_upgrade
pg_upgrade
performs the necessary checks, creates dumps of the old cluster, but when importing into the new cluster I get the following error:
> ./pg_upgrade -b /usr/local/Cellar/postgresql/9.2.4/bin/ -B /usr/local/Cellar/postgresql/9.3.1/bin -d /usr/local/var/postgres/ -D /usr/local/var/postgres9.3.1 -u postgres
Performing Consistency Checks
-----------------------------
Checking cluster versions ok
Checking database user is a superuser ok
Checking for prepared transactions ok
Checking for reg* system OID user data types ok
Checking for contrib/isn with bigint-passing mismatch ok
Creating dump of global objects ok
Creating dump of database schemas
ok
Checking for presence of required libraries fatal
Your installation references loadable libraries that are missing from the
new installation. You can add these libraries to the new installation,
or remove the functions using them from the old installation. A list of
problem libraries is in the file:
loadable_libraries.txt
Failure, exiting
It appears as though PostgreSQL 9.3.1 tries to use PostGIS 2.0, which is not compatible
Could not load library "$libdir/postgis-2.0"
ERROR: could not access file "$libdir/postgis-2.0": No such file or directory
Could not load library "$libdir/rtpostgis-2.0"
ERROR: could not access file "$libdir/rtpostgis-2.0": No such file or directory
Has anyone run into the same problem?
I recently ran into this problem and re-installing postgis worked for me. That is, go to the folder in which you tar'ed the source file (if you installed postgis from source) and re-run:
./configure
make
sudo make install
If you've installed the latest version of postgresql, postgis should install into the new postgresql's extension folder:
/usr/share/postgresql/x.x/extension/
To check, run:
sudo su -l postgres
psql template1 -p 5433
SELECT name, default_version,installed_version
FROM pg_available_extensions WHERE name LIKE 'postgis%' ;
If postgis has successfully installed, you should see the version number indicated in the "installed" column. Now when you try running the pg_upgrade command, everything should work fine.
Hope this helps.
来源:https://stackoverflow.com/questions/19597502/missing-libraries-when-upgrading-to-postgis-2-1-and-postgresql-9-3-1-using-homeb