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

Docker容器内PostgreSQL找不到Liquibase创建的业务表如何解决

问题原因与解决方法

核心原因1:你查询的PostgreSQL实例、数据库和应用实际使用的不一致

  • 应用Spring配置的JDBC URL为jdbc:postgresql://localhost:5432/mark_authentication,连接的是宿主机5432端口的PostgreSQL实例下的mark_authentication库
  • 你进入的是docker容器内的PostgreSQL实例,该实例端口映射为宿主机5433,默认创建的数据库是authentication,和应用实际使用的实例、数据库完全无关。应用能正常运行说明服务器上还单独部署了一个5432端口的PostgreSQL服务,所有业务数据都存在这个服务里。

核心原因2:默认查询命令看不到自定义Schema下的表

你的Liquibase变更脚本明确指定了所有业务表都创建在users自定义Schema下,而PostgreSQL客户端默认的查询路径(search_path)仅包含public等默认Schema,直接执行\dt只会返回public Schema下的表,自然看不到业务表。

正确查询步骤

  1. 直接在服务器本地(不需要进Docker容器)执行命令连接应用实际使用的数据库:
psql -U postgres -d mark_authentication

输入密码postgres完成连接
2. 执行以下任意命令查看业务表:

  • 直接查询users Schema下的所有表:
\dt users.*
  • 临时修改当前会话的查询路径,之后执行\dt即可同时看到users和public下的所有表:
SET search_path TO users, public;
\dt
  • 查看当前数据库所有Schema下的所有表:
\dt *.*

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:54:10