Докер-сочинять с postgres с географией postgis не работает - PullRequest
0 голосов
/ 04 июля 2019

Я использую контейнер docker-compose, который запускает приложение фляги.Внутри этого контейнера запускается контейнер postgres с расширением Postgis (изображение mdillon / postgis ).Все работает нормально, но одно расширение Postgis (Geography) не работает, что я не могу объяснить.

Мой docker-compose.yml:

version: '3.7'
services:
  flask:
    build: .
    entrypoint:
      - flask
      - run
      - --host=0.0.0.0
    environment:
      FLASK_DEBUG: 1
      FLASK_APP: app.py
    ports:
      - '5000:5000'
    volumes:
      - './app:/app'
    networks:
      - db_net
  db:
    image: mdillon/postgis
    networks:
      - db_net

networks:
  db_net:

После запуска sudo docker-compose up --build он создаетдва контейнера:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                     NAMES
1836d3d15765        img_flask         "flask run --host=0.…"   9 minutes ago       Up 9 minutes        80/tcp, 443/tcp, 0.0.0.0:5000->5000/tcp   img_flask_1
b25752af45ad        mdillon/postgis     "docker-entrypoint.s…"   13 minutes ago      Up 13 minutes       5432/tcp                                  img_db_1

При открытии приложения колбы или журналов базы данных он утверждает следующее:

sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedObject) type "geography" does not exist
LINE 7:  geom geography(POINT,4326)

Проверка правильности postgis и переустановка его в БД не решает его.Пакеты следующие:

                                            List of installed extensions
          Name          | Version |   Schema   |                             Description                             
------------------------+---------+------------+---------------------------------------------------------------------
 fuzzystrmatch          | 1.1     | public     | determine similarities and distance between strings
 plpgsql                | 1.0     | pg_catalog | PL/pgSQL procedural language
 postgis                | 2.5.0   | public     | PostGIS geometry, geography, and raster spatial types and functions
 postgis_tiger_geocoder | 2.5.0   | tiger      | PostGIS tiger geocoder and reverse geocoder
 postgis_topology       | 2.5.0   | topology   | PostGIS topology spatial types and functions
(5 rows)

Подводя итог, мои контейнеры работают нормально и Postgis хорошо установлен.Но есть проблема, когда запрос запрашивает функцию Geography.Кто-нибудь может дать совет, как решить эту проблему?Спасибо!

...