在 VS Code 中调试 Django 应用程序(本地)找不到我的数据库容器 db

debugging a django app (locally) in VS Code can't find my database container db

当我 运行 在 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')

似乎数据库在本地可见:

$ docker logs db

PostgreSQL Database directory appears to contain a database; Skipping initialization

这是我尝试选择调试配置时的命令 CS 代码 运行s:

(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

您需要确保 vs-code 可以找到主机 db 或直接使用 127.0.0.1

在你的情况下覆盖环境 "envFile": "" 成功了。