在所有其他东西都显示工作正常(YAY!)之后,Postgres
却拒绝启动(不要被名字所迷惑 - Postgres 的包装是为了PostgreSQL
赞扬 Paul Aoki在 1995 年第一个包装版本中将QUEL
查询语言处理器转换为使用SQL
WAY - 除了包装/品牌之外的所有东西都使用了这个名字Postgres
)。
启动失败并不意外,但软件包可以预料到升级会出现这种情况,因为所有升级的安装都可能需要这样做,并为我们运行适当的升级脚本;该脚本可以这样运行:
postgresql-setup --upgrade --upgrade-from postgresql
不幸的是,它失败了。
我沿着错误线索前进——Postgres
用户主目录中的日志文件,由所述命令吐出的中间日志指向stdout
,指向Postgis
安装中使用的一个问题。
最相关的错误信息说:
ERROR: could not access file "$libdir/postgis-3"
不幸的是,它没有说它$libdir
应该在哪里,同样不幸的是,我也不知道它在哪里!我还没有找到任何包含名称的目录postgis
。
我以为Postgis
它没有升级或者可能没有安装,但通过对已安装软件包的简单检查,我猜想这是错误的:它被称为postgis-3.2.2-1.fc37.x86_64
由于错误消息抱怨没有找到某个部分postgis-3
,但postgis
安装了版本 3 让我感到惊讶。
我还没有修复。有什么想法吗?对于Postgres
使用 的用户来说,这肯定是一个常见问题Postgis
!
答案1
答案2
postgis-upgrade
在 Fedora 37 上,如果您尚未安装该软件包,则会在数据库升级期间收到此错误消息。
因此,启用 postgis 的数据库的完整升级过程如下:
systemctl start postgresql.service
# => start fails fails and some hints are logged
dnf install postgresql-upgrade postgis-upgrade
postgresql-setup --upgrade
systemctl start postgresql.service
sudo -u postgres psql -f /var/lib/pgsql/update_extensions.sql
sudo -u postgres reindexdb yourdb
一般来说,最好检查一下升级日志(和标准/var/lib/pgsql/data/log/postgresql*.log
),看看是否有针对您的具体数据库的额外提示。