1.问题说明
项目要做跟GIS相关的应用,导入数据时出现以下报错:
[ERR] ERROR: relation "geometry_columns" does not exist
原因是:
PostgreSQL数据库没有PostGIS扩展
。我们当前的项目为了部署简便,PG数据库使用的是Docker部署,这个时候安装插件就跟非Docker的有一些不同了。
2.安装流程
# 进入容器dockerexec -it ID /bin/bash
2.1 更新apt-get
以下操作为
root
用户执行:
# 1.更新 apt-get 否则安装 sudo\vim 时可能会报错 E: Unable to locate package sudoapt-get update
# 2.安装 sudo 和 vimapt-getinstallsudoapt-getinstallvim
为什么要安装
sudo
和
vim
:
- 给PostgreSQL安装插件要使用postgre用户进行安装,这里就用到了sudo命令。
- postgre用户想要使用sudo命令要对
/etc/sudoers
进行修改,所以用到了vim。
2.2 修改sudoers
不修改的话报错:
postgres is not in the sudoers file. This incident will be reported.
# 3.修改 sudoersvim /etc/sudoers
# 添加内容 无需密码拥有root权限
postgres ALL=(ALL:ALL) NOPASSWD:ALL
2.3 安装PostGIS
# 4.切换到 postgres 用户su postgres
# 5.安装 PostGIS (根据安装的PG版本进行安装)sudoapt-getinstall postgresql-12-postgis-3 postgresql-12-postgis-3-dbgsym postgresql-12-postgis-3-scripts
3.创建扩展并验证
# 6.应用扩展
CREATE EXTENSION postgis;# 7.验证
SELECT postgis_full_version();# 结果POSTGIS="3.3.1 3786b21"[EXTENSION]PGSQL="120"GEOS="3.9.0-CAPI-1.16.2"PROJ="7.2.1"LIBXML="2.9.10"LIBJSON="0.15"LIBPROTOBUF="1.3.3"WAGYU="0.5.0 (Internal)"
本文转载自: https://blog.csdn.net/weixin_39168541/article/details/127518146
版权归原作者 シ風箏 所有, 如有侵权,请联系我们删除。
版权归原作者 シ風箏 所有, 如有侵权,请联系我们删除。