社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

在DOCKER启动过程中不存在关于几何类型的PASGRESH,然后决定它存在。

greg • 5 年前 • 1453 次点击  

我试着在docker版本中使用PostGIS几何列。 当docker启动容器时,我会得到以下日志(为清楚起见,缩写为):

Loading PostGIS extensions into template_postgis
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
Loading PostGIS extensions into postgres
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
/usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/script.sql

其中script.sql包含以下内容:

CREATE TABLE public.spatial_data_wfs (
  id int4 NOT NULL,
  name varchar(255) NOT NULL,
  featureid varchar(255) NOT NULL,
  geofeature jsonb NOT NULL,
  coordinates geometry NOT NULL
);

尽管在脚本之前加载了PostGIS扩展,但仍会出现以下错误:

psql:/docker-entrypoint-initdb.d/script.sql:238: ERROR:  type "geometry" does not exist
LINE 6:  coordinates geometry NOT NULL,

如果删除geometry列并等待容器启动,则可以使用alter table语句添加geometry列,并且它可以正常工作。

该脚本还定义了一个生成多边形的函数,该函数不会造成任何问题。基于其他SO问题,我尝试了以下方法:

  1. 创建postgis扩展:抱怨它已经被创建了。
  2. 使用ALTER DATABASE将搜索路径设置为包含postgis。没有抱怨,同样的问题。

我只能从日志中假设如下:

  1. 虽然安装了postgis,但仍然不能使用几何列,因为必须先完成其他操作。不管是什么,当postgres接受连接时,它已经完成了。
  2. 该函数仅针对语法进行验证-函数代码引用函数体中的几何类型这一事实在有人调用之前并不重要。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53124
 
1453 次点击  
文章 [ 1 ]  |  最新文章 5 年前