问题
在尝试设置Github动作来自动测试Django项目时,我们遇到了django.yml
设置的问题。每当我们运行. yml时,我们在最后一步(python manage.py test
)遇到了这个异常:
django.db.utils.OperationalError: (2005, "Unknown MySQL server host 'db' (-3)")
要说明的是,我们的Docker环境和测试本身工作得很好,只是当试图在Github操作中这样做时,我们遇到了问题。
∮我们所尝试的∮
1.在运行测试之前,我们尝试运行一个docker-compose up -d
,以确定我们的DB正在运行。
1.尝试添加具有如下DB信息的环境变量:https://github.com/Cuda-Chen/django-mysql-github-actions-demo/blob/main/.github/workflows/django-ci.yml
当前代码
name: Django CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
max-parallel: 4
matrix:
python-version: [3.8]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run Tests
run: |
python manage.py test
有人知道这是怎么回事吗?我们如何解决这个问题?
1条答案
按热度按时间ewm0tg9j1#
Django正在寻找一个主机名为
db
的数据库(在您的设置文件中),但它找不到,因为在Github Actions环境中没有响应该名称的主机或服务。为了在Github Actions中运行,你需要设置一个数据库服务容器,创建一个带密码的root用户,然后使用这些设置运行Django,这将允许Django连接到数据库容器,创建一个数据库,运行迁移,然后使用该testdatabase进行测试。
下面是一个工作示例(您可以根据需要添加自己的项目详细信息):