poe*_*ezn 11 postgresql postgis upgrade
在将PostgreSQL从9.2.4升级到9.3.1(通过OS X上的自制程序)的过程中,我遇到了一个奇怪的问题.这是我到目前为止采取的步骤
initdb在新数据库上运行pg_upgradepg_upgrade 执行必要的检查,创建旧集群的转储,但是当导入新集群时,我收到以下错误:
> ./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
Run Code Online (Sandbox Code Playgroud)
似乎PostgreSQL 9.3.1试图使用不兼容的PostGIS 2.0
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
Run Code Online (Sandbox Code Playgroud)
有没有人遇到同样的问题?
小智 1
我最近遇到了这个问题,重新安装 postgis 对我有用。也就是说,转到您压缩源文件的文件夹(如果您从源安装了 postgis)并重新运行:
./configure
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
如果您安装了最新版本的 postgresql,postgis 应该安装到新的 postgresql 的扩展文件夹中:
/usr/share/postgresql/xx/扩展/
要检查,请运行:
sudo su -l postgres
psql template1 -p 5433
SELECT name, default_version,installed_version
FROM pg_available_extensions WHERE name LIKE 'postgis%' ;
Run Code Online (Sandbox Code Playgroud)
如果 postgis 已成功安装,您应该会看到“已安装”列中指示的版本号。现在,当您尝试运行 pg_upgrade 命令时,一切都应该正常工作。
希望这可以帮助。