首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用码头创建扩展后置错误。所有lib都已安装

使用码头创建扩展后置错误。所有lib都已安装
EN

Stack Overflow用户
提问于 2022-01-19 17:00:04
回答 2查看 919关注 0票数 3

我在postgresql和Docker中创建扩展postgis时遇到了问题。我读过许多帖子和教程,但失败了:)我正在编写WSL:

代码语言:javascript
运行
复制
# uname -a
Linux 6019b3c71dfc 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 GNU/Linux

# psql -U user -d database -h db
psql (11.14 (Debian 11.14-0+deb10u1), server 10.18)
Type "help" for help.

massifs=# CREATE EXTENSION postgis;
ERROR:  could not open extension control file "/usr/local/share/postgresql/extension/postgis.control": No such file or directory

因此,我找到了postgis.control文件:

代码语言:javascript
运行
复制
#  find /usr -name postgis.control
/usr/share/postgresql/11/extension/postgis.control

并在正确的文件夹中复制它(并在需要时更改权限):cp /usr/share/postgresql/11/extension/postgis.control /usr/local/share/postgresql/extension

但是错误是相同的:

我已经安装了所有所需的库:

代码语言:javascript
运行
复制
# dpkg -l | grep postgis
ii  postgis                              2.5.1+dfsg-1                 amd64        Geographic objects support for PostgreSQL
ii  postgis-doc                          2.5.1+dfsg-1                 all          Geographic objects support for PostgreSQL -- documentation
ii  postgis-gui                          2.5.1+dfsg-1                 amd64        Geographic objects support for PostgreSQL -- GUI programs
ii  postgresql-11-postgis-2.5            2.5.1+dfsg-1                 amd64        Geographic objects support for PostgreSQL 11
ii  postgresql-11-postgis-2.5-scripts    2.5.1+dfsg-1                 all          Geographic objects support for PostgreSQL 11 -- SQL scripts

相同错误:(

我的船坞-合成人。

代码语言:javascript
运行
复制
#./dj/docker-compose.yml
version: '3.7'

services:
  web:
    env_file:
      - ./env/django.env
    build:
         context: ./myproject
         dockerfile: Dockerfile
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./myproject:/opt/myproject
    ports:
      - "8050:8000"
    depends_on:
      - db
    restart: always

  db:
    env_file:
      - ./env/postgresql.env
    image: postgis/postgis
    #image: postgres:10-alpine
    container_name: postgres_container_myproject
    hostname: db
    volumes:
      - /var/lib/postgresql/data-myproject:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    restart: always

  pgadmin:
    env_file:
      - ./env/pgadmin.env
    image: dpage/pgadmin4
    container_name: pgadmin_container_myproject
    ports:
      - "8059:80"
    volumes:
      - /var/lib/pgadmin/data:/var/lib/pgadmin/data
    links:
      - "db:pgsql-server"
    restart: always
    logging:
      driver: none

volumes:
  pgadmin_data:
  postgres_data:
    driver: local

你有什么主意吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-19 17:42:04

我一直在使用船坞-邮递员,因为如果您想检查他们是如何做的,Dockerfile是个不错的地方

票数 1
EN

Stack Overflow用户

发布于 2022-01-19 17:31:49

请注意,您正在连接到错误的服务器或有一个错误版本的服务器。

代码语言:javascript
运行
复制
psql (11.14 (Debian 11.14-0+deb10u1), server 10.18)

报告10 (10.18)的服务器版本,它肯定不是由包postgresql-11-postgis-2.5 (即11版本)安装的。

我假设您正在连接到没有安装正确包的另一个机器/容器(而不是localhost)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70774725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档