在VS代码中调试一个django应用(本地),找不到我的数据库容器db。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在VS代码中调试一个django应用(本地),找不到我的数据库容器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配置中设置,如果这是问题所在。
下面是我的 设置.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代码运行的命令 当我试图选择调试配置时
(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": ""
做到了这一点。
以上是关于在VS代码中调试一个django应用(本地),找不到我的数据库容器db。的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Django 项目的 VS-code 中激活调试(虚拟环境中的 Django)