搭建PostgreSQL空间数据库环境拓展 PostGis与Pgrouting插件
文章目录
一、基于 Docker 搭建
1. 搭建基础 PostgreSQL 数据库环境
拉取 postgres 镜像
$ docker pull postgres
运行镜像创建容器并挂载存储目录
$ mkdir -p /Users/fusheng/ToolSpace/Docker/Containers/PostgreSQL/postgre_park_map_data
$ docker run -p 5432:5432 --name postgres_park_map -e POSTGRES_PASSWORD=123456 -v /Users/fusheng/ToolSpace/Docker/Containers/PostgreSQL/postgre_park_map_data:/var/lib/postgresql/data -d postgres
以 psql 指令进入容器
$ docker exec -it postgres_park_map psql -U postgres
创建数据库 park_map
postgres=# create database park_map;
CREATE DATABASE
PS:完成以上步骤基础的 PostgreSQL 数据库就搭建完成了,可以下载pgAdmin客户端通过用户名(postgres)和密码(123456)连接访问。接下来我们为 PostgreSQL 添加空间数据库相关的插件,这里的插件支持有很多,我们选用 PostGis 和 PgRouting 插件。(触类旁通,操作起来差不多)
2. 安装拓展插件 Postgis
因为插件的安装操作流程基本一致,这里就以介绍安装 PostGis 插件为主。
查看当前PG库版本信息(psql指令下)
postgres=# select version();
PostgreSQL 15.1 (Debian 15.1-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
以 bash 指令进入容器(PS:注意区分 bash 终端和 psql 终端)
$ docker exec -it postgres_park_map /bin/bash
更新 apt 库
$ apt-get update
搜索 apt postgis 插件库
$ apt-cache search postgis
...
postgresql-15-postgis-3 - Geographic objects support for PostgreSQL 15
postgresql-15-postgis-3-dbgsym - debug symbols for postgresql-15-postgis-3
postgresql-15-postgis-3-scripts - Geographic objects support for PostgreSQL 15 -- SQL scripts
...
选择对应版本的插件进行安装(这里我们上面已经得知版本为 15)
$ apt-get install postgresql-15-postgis-3 postgresql-15-postgis-3-dbgsym postgresql-15-postgis-3-scripts
搜索拓展插件是否安装
$ find /usr -name postgis.control
/usr/share/postgresql/15/extension/postgis.control
切换至 psql 指令终端启动插件
postgres=# create extension postgis;
CREATE EXTENSION
查看插件是否启用成功
postgres=# select postgis_full_version();
POSTGIS="3.3.2 4975da8" [EXTENSION] PGSQL="150" 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)"
PS:完成以上步骤基本上就完成了插件的安装过程。
3. 安装拓展插件 Pgrouting
搜索 apt 库
$ apt-cache search pgrouting
...
postgresql-15-pgrouting - Routing functionality support for PostgreSQL/PostGIS
postgresql-15-pgrouting-dbgsym - debug symbols for postgresql-15-pgrouting
postgresql-15-pgrouting-doc - Routing functionality support for PostgreSQL/PostGIS (Documentation)
postgresql-15-pgrouting-scripts - Routing functionality support for PostgreSQL/PostGIS - SQL scripts
...
安装 pgrouting 插件
$ apt-get install postgresql-15-pgrouting postgresql-15-pgrouting-dbgsym postgresql-15-pgrouting-scripts
搜索拓展插件是否安装
$ find /usr -name pgrouting.control
/usr/share/postgresql/15/extension/pgrouting.control
启用 pgrouting 插件
postgres=# create extension pgrouting;
CREATE EXTENSION
PS:以上就是基于 Docker 环境搭建 PostgreSQL 空间数据库的基本流程。