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

从Travis CI迁移到GitHub Actions后Nosetests无法通过PostgreSQL认证

问题根因

你遇到的认证失败核心问题是创建awips数据库角色时未设置登录密码,官方PostgreSQL镜像默认启用密码认证,无密码的角色无法通过密码验证流程登录。此外你的Workflow配置还存在小的语法瑕疵。

修复步骤
  1. 修正创建awips角色的SQL语句,指定与测试环境变量匹配的密码:
    把原有创建角色的命令
psql -c 'create role awips superuser createdb createrole inherit login;' -h localhost -U postgres postgres

替换为

psql -c "create role awips superuser createdb createrole inherit login password 'awips';" -h localhost -U postgres postgres
  1. 修正Workflow语法错误:你现有配置中- name create metadata database and awips role缺少冒号,需改为- name: create metadata database and awips role避免潜在解析问题。
可选优化

可以直接通过PostgreSQL服务的环境变量预创建metadata数据库,省略手动建库的步骤,修改services段即可:

services:
  postgres:
    image: postgres:latest
    env:
      POSTGRES_DB: metadata
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
    ports:
      - 5432:5432
    options: >-
      --health-cmd pg_isready
      --health-interval 10s
      --health-timeout 5s
      --health-retries 5
后续故障排查方向

如果修复后仍有问题,可按以下步骤定位:

  • 在跑测试前新增一步验证命令,确认awips用户可以正常登录数据库:
- name: 验证数据库连接
  run: psql -h localhost -U awips metadata
  env:
    PGPASSWORD: awips

如果该步失败,说明账号权限/密码配置仍有问题;如果该步成功但nosetests仍报错,说明你的应用代码未正确读取环境变量中的数据库连接参数。

  • 检查你的数据库连接逻辑,确认没有硬编码的连接参数覆盖了环境变量配置。
  • 15分钟超时属于连接重试导致的异常等待,修复认证问题后运行时长会恢复正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:27:02