首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在github操作上找不到postgis.control

在github操作上找不到postgis.control
EN

Stack Overflow用户
提问于 2021-09-04 08:50:31
回答 1查看 60关注 0票数 0

在我的github操作yml中,它找不到postgis.control。但是,如果find /usr -name postgis.control找到了,它可以找到postgis.control。

我不知道为什么测试找不到postgis.control..有什么想法吗?

代码语言:javascript
复制
name: Django CI
on: push
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      max-parallel: 4
      matrix:
        python-version: [3.7]

    services:
      postgres:
        image: postgres:12
        ports:
          - 5432:5432
        env:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: ghostlabs_localhost
        options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v2
      with:
        python-version: ${{ matrix.python-version }}
    - name: psycopg2 prerequisites
      run: |
        sudo apt-get update && sudo apt remove -y postgis* postgresql* && sudo apt-get install -y libpq-dev gdal-bin postgresql-12 postgresql-12-postgis-3 postgresql-12-postgis-3-scripts postgresql-contrib-12
        echo "-----"
        find /usr -name postgis.control
    - name: Install Dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements/localhost.txt
    - name: Run Tests
      run: |
        python manage.py migrate && python manage.py test

日志显示

代码语言:javascript
复制
-----
/usr/share/postgresql/12/extension/postgis.control

但是,测试已经

代码语言:javascript
复制
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.7.11/x64/lib/python3.7/site-packages/django/db/backends/utils.py", line 82, in _execute
    return self.cursor.execute(sql)
psycopg2.errors.UndefinedFile: could not open extension control file "/usr/share/postgresql/12/extension/postgis.control": No such file or directory
EN

回答 1

Stack Overflow用户

发布于 2021-10-15 09:04:51

postgis扩展未在官方postgresql docker镜像中分发,您可能需要手动安装或使用以下镜像进行服务定义:

代码语言:javascript
复制
image: postgis/postgis:12

此外,当您在VM中定义作业时,端口可能不可用,而主机将是本地主机,因此更安全的方法是定义:

代码语言:javascript
复制
ports:
    - 5432/tcp

在服务定义中,以及稍后在作业定义中,设置应在设置文件中使用的环境变量。如果变量为DB_PORT,则应使用数据库将以下env添加到步骤中:

代码语言:javascript
复制
env:
  DB_HOST: localhost
  DB_PORT: ${{ job.services.postgres.ports[5432] }}

这应该行得通!

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

https://stackoverflow.com/questions/69053786

复制
相关文章

相似问题

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