отладка приложения django (локально) в VS Code не может найти мою базу данных контейнера базы данных - PullRequest
0 голосов
/ 19 апреля 2020

Когда я запускаю отладочную конфигурацию в VS Code:

"configurations": [
    {
        "name": "Django Tests",
        "type": "python",
        "request": "launch",
        "program": "${workspaceFolder}/src/manage.py",
        "args": [
            "test",
            "src"
        ],
        "django": true
    }

Я получаю эту ошибку: django.db.utils.OperationalError: could not translate host name "db" to address: Name or service not known

У меня нет этой проблемы, когда я обычно запускаю приложение: ./src/manage.py runserver

db - это моя контейнерная база данных postgresql.

services:
  db:
    container_name: db
    build: ./postgresql
    expose:
      - "5432"
    ports:
      - 5432:5432
    ...

Возможно, я не использую правильный python путь? Я должен запустить это из моей виртуальной среды python, но я не уверен, как установить это в конфигурации VS Code, если это проблема.

Вот мои settings.py

POSTGRES_HOST = os.environ.get('POSTGRES_HOST', '127.0.0.1')
POSTGRES_PORT = os.environ.get('POSTGRES_PORT', '5432')

Кажется, что db виден локально:

$ docker logs db

PostgreSQL Database directory appears to contain a database; Skipping initialization

Вот команда CS Code запускается, когда я пытаюсь выбрать конфигурацию отладки:

(venv) me@host:/path/to/myproject/$  env DEBUGPY_LAUNCHER_PORT=36867 /path/to/myproject/venv/bin/python3 /home/me/.vscode/extensions/ms-python.python-2020.3.71659/pythonFiles/lib/python/debugpy/no_wheels/debugpy/launcher /path/to/myproject/src/manage.py runserver --noreload

1 Ответ

1 голос
/ 19 апреля 2020

вам нужно убедиться, что vs-code может найти хост db или напрямую использовать 127.0.0.1.

В вашем случае переопределение среды "envFile": "" сделало свое дело.

...