You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Django应用无法执行PostgreSQL数据库migrate命令求助

问题诊断与解决

核心原因

你遇到的错误是数据库主机名字段格式错误:把端口号port=5432直接拼到了主机名字符串里,导致DNS无法解析这个非法的主机名。

修复步骤

1. 修正Django数据库配置

打开settings.py里的DATABASES配置块,确保HOST和PORT是独立的两个配置项:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': '你的数据库名称',
        'USER': '你的数据库用户名',
        'PASSWORD': '你的数据库密码',
        'HOST': 'Azure PostgreSQL服务器主机名(格式如xxx.postgres.database.azure.com)',
        'PORT': '5432',  # 单独设置端口,不要混入HOST字段
    }
}

如果是通过Azure应用服务的环境变量配置(参考教程方式),检查对应环境变量:

  • DB_HOST:仅填写纯主机名,不要附带port=5432
  • DB_PORT:单独设置为5432

2. 验证数据库连接可用性

在SSH终端用psql直接测试连接(替换为你的实际信息):

psql -h <正确的主机名> -p 5432 -U <用户名>@<服务器名> -d <数据库名>

如果连接失败,额外检查:

  • Azure PostgreSQL防火墙规则:是否已添加应用服务的出站IP,或开启了「允许Azure服务和资源访问此服务器」选项
  • 用户名格式:Azure PostgreSQL要求用户名为用户名@服务器名的完整格式

3. 生效新配置

修正配置后,重新部署应用,或在Azure门户重启应用服务,确保新配置加载生效。

内容的提问来源于stack exchange,提问作者champlooSIXSIX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 11:35:07