Shield CLI v0.3.3 新增 PostgreSQL 插件:浏览器里管理 PG 数据库

前两天发了 MySQL 插件,现在 PostgreSQL 也跟上了。同样的思路------一条命令装好,浏览器打开就能用,不需要在对方机器上装任何客户端。


一条命令安装

bash 复制代码
shield plugin add postgres

验证:

bash 复制代码
shield plugin list
# NAME      VERSION  PROTOCOLS              INSTALLED
# postgres  v0.1.0   postgres, pg, postgresql  2026-03-25T10:00:00+08:00

前提是主程序升级到 v0.3.3+:

bash 复制代码
brew update && brew upgrade shield-cli
# 或
curl -fsSL https://cdn.jsdelivr.net/gh/fengyily/shield-cli@main/install.sh | sh

使用方式

Web UI(推荐)

bash 复制代码
shield start

http://localhost:8181 添加好 postgres 插件

http://localhost:8181 添加应用,Protocol 选 postgres,填好地址、用户名、密码,点连接。

命令行

bash 复制代码
# 连接远程 PostgreSQL
shield postgres 10.0.0.5:5432 --db-user postgres --db-pass mypass --database mydb

# 只读模式
shield postgres 10.0.0.5:5432 --db-user postgres --readonly

不传凭证会交互式提示输入。pgpostgresql 是别名,效果一样:

bash 复制代码
shield pg 10.0.0.5:5432

Web 界面功能

连接成功后浏览器自动打开 Web SQL 客户端,界面和 MySQL 插件类似,但针对 PostgreSQL 做了适配:

Schema 树形浏览

PostgreSQL 按 Schema 组织,不像 MySQL 按 Database 切换。左侧栏展示 Schema → Table → Column/Index 三级树结构,支持搜索过滤。

SQL 编辑器

  • 多标签页,Ctrl+Enter 执行
  • 结果排序、CSV 导出、单元格复制
  • 双击单元格查看完整内容(长文本、JSONB 友好)

表结构管理

  • 查看字段类型、默认值、约束
  • 可视化创建表(支持 PG 类型:SERIALBIGSERIALTIMESTAMPTZJSONBUUIDINET 等)
  • 创建/删除索引
  • 添加/删除字段
  • 创建/删除 Schema

行级操作

  • 插入记录
  • 编辑单元格(双击)
  • 删除行(带确认)

只读模式

和 MySQL 插件一样,只读/读写由启动方控制。只读模式下 INSERT、UPDATE、DELETE、DROP、ALTER、CREATE 等写操作被前后端双重拦截,远程用户无法绕过。


和 MySQL 插件的区别

两个插件功能结构一致,但在 SQL 层面做了完整的 PostgreSQL 适配:

MySQL 插件 PostgreSQL 插件
组织方式 Database → Table Schema → Table
标识符引用 反引号 ````` 双引号 "
自增类型 AUTO_INCREMENT SERIAL / BIGSERIAL
元数据查询 SHOW 命令 information_schema
特有类型 --- JSONBUUIDINETTIMESTAMPTZ

插件源码独立维护

PostgreSQL 插件的代码不在 Shield CLI 主仓库里,而是放在独立的插件 monorepo:

github.com/fengyily/shield-plugins

后续 Redis、SQL Server 等插件也会放在这里。每个插件是独立的 Go module,互不依赖,CI 自动检测哪个插件有改动就构建哪个。


实际场景

临时给同事查 PG 数据

同事需要查几条数据,但他那台机器上没有 pgAdmin 也没有 DBeaver:

bash 复制代码
shield postgres 192.168.1.100:5432 --db-user readonly --readonly

把链接发给他,浏览器打开就能查。用完断开。

排查线上 Schema 结构

生产环境的 PG 不方便直连,通过 Shield 建立加密隧道,只读模式浏览 Schema、表结构和索引:

bash 复制代码
shield postgres prod-db.internal:5432 --db-user ops --readonly --invisible

--invisible 隐身模式需要授权码才能访问,防止链接泄露。

Docker 里的 PG

bash 复制代码
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:16
shield postgres 127.0.0.1:5432 --db-user postgres --db-pass postgres

当前插件状态

插件 状态
mysql ✅ 已发布
postgres ✅ 已发布
redis 计划中
sqlserver 计划中

试一下

bash 复制代码
# 安装/升级 Shield CLI
brew tap fengyily/tap
brew install shield-cli
# 或
curl -fsSL https://cdn.jsdelivr.net/gh/fengyily/shield-cli@main/install.sh | sh

# 安装 PostgreSQL 插件
shield plugin add postgres

# 连接
shield postgres 127.0.0.1:5432 --db-user postgres

开源地址:https://github.com/fengyily/shield-cli

插件仓库:https://github.com/fengyily/shield-plugins

文档地址:https://docs.yishield.com

有问题或建议欢迎提 Issue

相关推荐
Hrain-AI3 小时前
多 Agent 并行不打架:worktree 隔离与反馈回流落地(附脚本)
网络·数据库·人工智能·架构
云运维笔记3 小时前
IP地址从入门到精通:网络通信的核心基石
运维·网络·计算机网络
Koi慢热3 小时前
DayDayMap学术社区体验:卫星网络测绘专题用下来怎么样
网络·人工智能·windows·web安全·网络安全
万联WANFLOW3 小时前
从“连接网络”到“编排业务”:企业网络架构正在发生什么变化?
网络·人工智能
bosins3 小时前
WSL2 启动即崩溃?调整超时参数解决 Docker 阻塞问题
linux·docker·wsl
名字还没想好☜4 小时前
Go context.AfterFunc 实战(Go 1.21):context 一取消就自动跑清理,告别手写 goroutine 监听 Done
后端·golang·go
captain3764 小时前
网络原理(9)-数据链路层
java·网络协议·java-ee
kuroomi4 小时前
Ingress-Nginx与kubernetes 网络
linux·运维·网络·kubernetes
闲云自留地4 小时前
Containerd 进阶教程:命名空间 Namespace、私有仓库 Harbor、容器管理全流程
容器
Yang96115 小时前
鼎讯101C测向天线200MHz至500MHz比幅测向解读
网络