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

Docker Compose部署Conda+PostgreSQL环境连接失败及表查询异常问题

问题1:数据库连接拒绝报错

原因

Docker Compose 会为所有服务创建独立的内部网络,同一网络下的容器互相访问需要使用服务名作为主机名。你在jupyter容器中使用localhost访问数据库,localhost指向的是jupyter容器本身,而不是PostgreSQL容器,因此无法连接。

解决方法

将连接字符串中的主机地址从localhost替换为你在docker-compose.yml中定义的数据库服务名database,修改后连接地址为:

postgresql://admin:admin@database:5432/postgresdb

问题2:写入表后查询提示表不存在

原因

PostgreSQL 默认对未加双引号的标识符会自动转换为小写处理。你使用to_sql写入时指定了大写的表名DFTEST,PostgreSQL会自动为该表名加上双引号保留大写格式存储。当你执行SELECT * FROM DFTEST时,PostgreSQL会将未加双引号的DFTEST转为小写dftest去查找,自然找不到对应表。你查询information_schema时明确指定了table_name = 'DFTEST'匹配大写字符串,所以可以查到结果。

解决方法

有两种可选方案:

  • 方案1:查询时给大写表名加上双引号
    execute_query('SELECT * FROM "DFTEST"')
    
  • 方案2(更推荐,符合PostgreSQL命名规范):写入和查询时统一使用小写表名
    写入时修改为:
    create_table_from_pandas(df_test, 'dftest', df_scheema)
    
    后续查询直接使用:
    execute_query('SELECT * FROM dftest')
    

内容的提问来源于stack exchange,提问作者Guzmán Vitar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:24:00