Jon*_*und 16 postgresql postgis amazon-rds
我正在尝试将我的RDS实例从9.5.4升级到9.6.1,并且我因为需要首先升级的PostGIS版本的错误而被阻止.
数据库实例处于无法升级的状态:PreUpgrade检查失败:无法升级实例,因为有一个或多个数据库安装了旧版本的PostGIS.请升级PostGIS的所有安装,然后重试.
RDS 9.5.4支持的PostGIS的最高版本是2.2.2
alter extension postgis update
产量
注意:已经安装了扩展名为"postgis"的版本"2.2.2"
我尝试明确升级到9.6.1中的版本
将扩展postgis更新为'2.3.0'
入门
[错误]错误:扩展名"postgis"没有从版本"2.2.2"到版本"2.3.0"的更新路径
所以我的问题是:我该如何升级?我怀疑我可以在升级之前删除扩展并在之后安装新版本,但我不知道这将对我的数据做什么,或者是否能正确升级我的空间结构或功能.
我已经检查了文档中提到的这种情况
在升级到9.6.1之前,请确保您的实例已升级到9.5.4。
我在一个数据库实例上遇到了相同的错误,但是在9.5.2上。首先,我将其升级到9.5.4,然后又升级到9.6.1,一切正常。
我尝试使用的下一个实例已经在9.5.4上并收到了相同的消息。
所以首先我做了一个:
ALTER EXTENSION postgis UPDATE;
Run Code Online (Sandbox Code Playgroud)
然后升级服务器
我遇到了这个确切的问题,试图将服务器从9.3升级到9.6。通过反复试验,我找到了一条成功的道路。只是有关升级过程的详细信息:每次升级后,RDS都需要手动重启。我认为升级将自动处理该问题,但事实并非如此。
初始点:
SELECT version(); -> PostgreSQL 9.3.20 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9), 64-bit
SELECT postgis_full_version(); -> POSTGIS="2.1.8 r13780" GEOS="3.5.0-CAPI-1.9.0 r4084" PROJ="Rel. 4.9.2, 08 September 2015" GDAL="GDAL 1.11.5, released 2016/07/01" LIBXML="2.9.1" LIBJSON="UNKNOWN" RASTER
ALTER EXTENSION postgis UPDATE; -> Returned success, but no change to PostGIS version
Run Code Online (Sandbox Code Playgroud)
升级到9.4后:
SELECT version(); -> PostgreSQL 9.4.18 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9), 64-bit
SELECT postgis_full_version(); -> POSTGIS="2.1.8 r13780" GEOS="3.5.0-CAPI-1.9.0 r4084" PROJ="Rel. 4.9.2, 08 September 2015" GDAL="GDAL 1.11.5, released 2016/07/01" LIBXML="2.9.1" LIBJSON="UNKNOWN" RASTER
ALTER EXTENSION postgis UPDATE; -> Returned success, but no change to PostGIS version
Run Code Online (Sandbox Code Playgroud)
升级到9.5后:
SELECT version(); -> PostgreSQL 9.5.13 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9), 64-bit
SELECT postgis_full_version(); -> POSTGIS="2.1.8 r13780" GEOS="3.5.1-CAPI-1.9.1 r4246" PROJ="Rel. 4.9.2, 08 September 2015" GDAL="GDAL 1.11.5, released 2016/07/01" LIBXML="2.9.1" LIBJSON="UNKNOWN" RASTER
ALTER EXTENSION postgis UPDATE; -> SQL Error [XX000]: ERROR: attempt to redefine parameter "postgis.backend"
Run Code Online (Sandbox Code Playgroud)
因此,我在这里停留了一段时间,似乎无法成功升级PostGIS。然后,我看到这篇文章描述了同样的错误,并决定仅等待24小时,以查看RDS实例是否收到补丁。尽管我没有注意到日志中的任何内容,但看起来确实如此。无论如何,第二天我就可以成功升级PostGIS扩展程序,而无需自己做任何更改
ALTER EXTENSION postgis UPDATE; -> Returned success
SELECT postgis_full_version(); -> POSTGIS="2.2.5 r15298" GEOS="3.5.1-CAPI-1.9.1 r4246" PROJ="Rel. 4.9.3, 15 August 2016" GDAL="GDAL 2.0.3, released 2016/07/01" LIBXML="2.9.1" LIBJSON="0.12" RASTER
Run Code Online (Sandbox Code Playgroud)
之后,我能够将RDS实例升级到9.6
SELECT version(); -> PostgreSQL 9.6.9 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9), 64-bit
SELECT postgis_full_version(); -> POSTGIS="2.2.5 r15298" GEOS="3.5.1-CAPI-1.9.1 r4246" PROJ="Rel. 4.9.3, 15 August 2016" GDAL="GDAL 2.0.3, released 2016/07/01" LIBXML="2.9.1" LIBJSON="0.12" RASTER
ALTER EXTENSION postgis UPDATE; -> Returned success
SELECT postgis_full_version(); -> POSTGIS="2.3.7 r16523" PGSQL="96" GEOS="3.6.2-CAPI-1.10.2 4d2925d6" PROJ="Rel. 4.9.2, 08 September 2015" GDAL="GDAL 2.1.4, released 2017/06/23" LIBXML="2.9.1" LIBJSON="0.12" RASTER
Run Code Online (Sandbox Code Playgroud)
我想弄清楚如何立即触发扩展的明显补丁,而不仅仅是等待它,但是我还无法弄清楚。
我有同样的问题。问题是,我有 1 个以上的数据库。我升级了主数据库,但忘记了其他数据库。您需要检查同一服务器中的所有数据库,并使用以下命令升级每个数据库。
ALTER EXTENSION postgis UPDATE;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |