数据库工具
数据库模块的 工具 面板把 25 个工具分成六个分区(浏览、查询、设计、数据、服务器 和 安全)。NoSQL 连接则打开各自专属的界面:Redis 有键浏览器、CLI 和监视器,Firestore 有文档浏览器和查询构建器,MongoDB 有集合列表。本页说明每个工具的作用、适用于哪些连接,以及它做不到什么。连接、本地 PostgreSQL、SQL 控制台、数据编辑和备份见「数据库」页面。这里几乎没有任何功能与套餐绑定,仅有的几项限制集中在靠近末尾的一张表里。
它是什么,如何打开
本页的所有内容都在数据库模块里,打开方式是 工具 → 数据库(「数据库」页面列出了所有入口)。工具集中在一个面板中,顺序固定,而且面板只显示适合当前连接的工具:做不到所写功能的工具会被隐藏,而不是留在那里再给出警告。

工具在哪里
| 你所在的位置 | 点什么 | 你会得到什么 |
|---|---|---|
| 手机或平板,竖屏 | 标题栏右侧的网格图标(工具)。 | 一个底部面板,里面有搜索框、常用 一行,以及按分区排列的工具。 |
| 手机,横屏 | 取代标题栏的窄侧栏上的网格图标(工具)。 | 同一个面板。 |
| 平板,横屏 | 无需点击:工具栏始终显示在屏幕上。 | 同样的工具以固定的一栏呈现,宽 280 dp。折叠工具栏 会把它收成只剩图标(72 dp)。每个分区可以单独折叠,窗口太窄时这一栏会自行折叠。 |
| 起始界面(数据库管理器) | 这里没有标题栏,所以没有工具面板。它自带两个快捷入口:监控 和 架构设计器。 | 监控,以及架构设计器(无需连接)。 |
面板内部
- 标题是 工具。标题下方是当前连接的名称,或者 未选择连接。
- 搜索工具… 按工具在你所用语言中的名称过滤。没有匹配项时会显示 没有叫这个名字的工具。
- 常用 是顶部的一行,搜索时会隐藏。累计打开过工具 3 次之后才会出现,最多显示 4 个,也就是你最常打开的那些。计数保存在设备上。
- 每一行有图标、工具名称、一行说明,在免费版中,如果该工具与某个 Pro 功能相关,还有一个 PRO 徽标。当前界面已打开的工具旁有一个圆点。
- 顺序不会随使用而改变。分区按你使用的先后顺序排列(查看、查询、改结构、搬数据、服务器、权限),所以工具始终在你上次看到的位置。
25 个工具
六个分区,25 个工具。最后一列说明工具在什么情况下显示,以及套餐对它有什么影响。「数据库页面」表示该界面在那里有说明。
浏览(3)
| 工具 | 打开什么 | 何时显示 · 套餐 |
|---|---|---|
| 表 | 连接中的表;在 MongoDB 上是它的集合。 | 任何连接。Redis 和 Firestore 上为空。 |
| 架构树 | 把表、列、索引和键放在一棵树里(数据库页面)。 | 至少有一张表的 SQL 连接。 |
| ER 图 | 表之间的关系(数据库页面)。 | 至少有一张表的 SQL 连接。 |
查询(6)
| 工具 | 打开什么 | 何时显示 · 套餐 |
|---|---|---|
| SQL 控制台 | 控制台(数据库页面)。 | SQL 连接。 |
| 查询历史 | 你在控制台里执行过的所有内容(见「查询历史和已保存的查询」)。 | SQL 连接。 |
| 已保存的查询 | 你保存的查询及其文件夹。 | SQL 连接。免费版:5 条已保存的查询。 |
| 执行计划 | 控制台中查询的执行计划(数据库页面)。 | SQL 连接。 |
| 图表 | 控制台上一次结果的图表。 | SQL 连接。 |
| 仪表板 | 你的小组件仪表板。 | 任何连接,或本地引擎运行时。无套餐限制。 |
设计(4)
| 工具 | 打开什么 | 何时显示 · 套餐 |
|---|---|---|
| 架构设计器 | 架构设计器(数据库页面)。 | 始终显示,即使没有连接。 |
| 新建表 | 创建表的表单(数据库页面)。 | SQL 连接。免费版:每个数据库 4 张表。 |
| 对比结构 | 与已保存快照的架构差异(数据库页面)。在 PlanetScale 项目上则改为打开部署请求差异。 | SQL 连接。快照差异需要 Pro(免费版上显示 PRO);PlanetScale 的差异免费。 |
| 导入结构 | 把当前打开的数据库带入设计器(数据库页面)。 | 至少有一张表的 SQL 连接。 |
数据(4)
| 工具 | 打开什么 | 何时显示 · 套餐 |
|---|---|---|
| 测试数据 | 为当前打开的表打开模拟数据生成器。 | 至少有一张表的 SQL 连接,并且必须已打开某张表。 |
| 导入 | 系统文件选择器,然后是导入预览。 | SQL 连接。免费版:数据库已有 4 张表之后就不行了。 |
| 导出 | 当前打开的表的导出面板(数据库页面)。 | 任何连接。没有打开的表时什么也不做。 |
| 备份 | 备份界面(数据库页面)。 | 任何连接。只有计划备份需要 Pro。 |
服务器(5)
| 工具 | 打开什么 | 何时显示 · 套餐 |
|---|---|---|
| 监控 | 监控界面。 | 任何连接。 |
| 引擎设置 | 引擎界面,健康 标签页(数据库页面)。 | 本地 PostgreSQL,即使已停止。 |
| 扩展 | 引擎界面,扩展 标签页(数据库页面)。 | 本地 PostgreSQL 运行时。 |
| 服务器日志 | 引擎界面,日志 标签页(数据库页面)。 | 本地 PostgreSQL,即使已停止。 |
| 新建数据库 | 在本地引擎内再创建一个数据库的对话框。 | 本地 PostgreSQL 运行时。免费版:1 个数据库;会显示 PRO。 |
安全(3)
| 工具 | 打开什么 | 何时显示 · 套餐 |
|---|---|---|
| 安全 | 五个标签页:脱敏、角色、策略、权限 和 生物识别。 | 任何连接。 |
| 审计日志 | 模块执行过的内容,带 重新执行。 | 任何连接。 |
| 分享 | 复制连接或查询,保存、打开或粘贴配置。 | 任何连接。 |
各种连接显示哪些工具
面板会根据当前连接能做什么来统计:
| 连接 | 面板中的工具 |
|---|---|
| 本地 PostgreSQL,运行中,且有表 | 全部 25 个。 |
| 本地 PostgreSQL,已停止 | 扩展 和 新建数据库 被隐藏。需要表的工具只有在连接里有表时才会出现。 |
| PostgreSQL 或 MySQL 服务器、Neon、Supabase、PlanetScale、Turso、Cloudflare D1 | 21 个:浏览、查询、设计和数据四个分区的工具,监控 以及安全分区的三个工具。没有 引擎设置、扩展、服务器日志 和 新建数据库;需要表的工具要等到有表之后才出现。 |
| Redis、以 Redis 方式打开的 Upstash、Cloud Firestore、MongoDB 服务器 | 9 个:表、仪表板、架构设计器、导出、备份、监控、安全、审计日志 和 分享。这九个都是为 SQL 设计的,请看下面的说明。 |
其他入口
- NoSQL 连接 会跳过这个面板。打开 Redis 连接会显示键浏览器,打开 Cloud Firestore 会显示文档浏览器,打开 MongoDB 服务器会显示它的集合。它们不在目录里,因为每一个都是其连接本身的界面。
- 在 Backend Manager 里,在 Database 中打开 操作会直接跳到某个项目、它的表、SQL 控制台、安全 → 策略、Supabase 架构健康(在 监控 内)或架构差异。如果服务没有连接,PocketCode 会明确告知,而不是打开一个空界面。
- 在表列表里,⋮ 菜单有 导入 CSV(它支持六种格式),仅在本地引擎上还有 从剪贴板导入 和 架构差异。
做不到的事及原因
- 看到与当前连接不匹配的工具:它们是被隐藏的,而不是变灰。有意为之
- 给工具重新排序或固定你自己的工具:顺序是固定的,这样工具就不会移动。只有 常用 一行会随使用变化。有意为之
- 从起始界面打开工具面板:那里没有标题栏。使用它的两个快捷入口,或者先打开一个连接。有意为之
界面地图
本页涉及的每个工具界面各占一行。其他工具的界面(控制台、数据查看器、备份……)见「数据库」页面。
| 界面 | 如何到达 | 你可以做什么 |
|---|---|---|
| 工具面板和工具栏 | 标题栏上的网格图标(竖屏)、侧栏(手机横屏)或固定的工具栏(平板横屏)。 | 搜索 25 个工具,重新打开 常用 的工具,并跳转到任意界面。 |
| Redis 浏览器 | 打开一个 Redis 连接,或者一个返回了 Redis 密码的 Upstash 数据库。 | 过滤键,查看类型、TTL、大小和预览,设置 TTL,删除键,加载更多,打开 CLI 和监视器。 |
| Redis CLI | Redis 浏览器上的终端图标。 | 执行任意命令,使用四个快捷标签,并以 redis-cli 格式读取回复;危险命令会先询问。 |
| Redis 监视器 | Redis 浏览器上的监视器图标。 | 查看内存、客户端、每秒操作数和版本,以及任意频道上发布的消息。 |
| Firestore 浏览器 | 打开 Cloud Firestore 连接。 | 选择项目,按路径浏览,读取文档,并在你自己的项目上编辑和删除文档。 |
| Firestore 查询 | Firestore 浏览器上的筛选图标。 | 用 WHERE 子句、排序依据 和 上限 构建查询,并读取结果。 |
| MongoDB 集合 | 打开一个 MongoDB 服务器连接。 | 读取数据库的集合,每个集合带一个计数。 |
| 监控 | 工具里的 监控,或起始界面上的 监控。 | 四个标签页(会话、慢查询日志、索引、告警),在 Supabase 上还有 架构健康,在 PlanetScale 上还有 慢查询。 |
| 仪表板 | 工具里的 仪表板。 | 创建带自动刷新的查询小组件仪表板,并读取引擎的 服务器 标签页。 |
| 图表 | 控制台出现至少有 2 列的结果后,工具里的 图表。 | 绘制柱状图、折线图、饼图、散点图或热力图;导出为 PNG 或添加到仪表板。 |
| 模拟数据生成器 | 已打开某张表时,工具里的 测试数据。 | 插入生成的行,或由 AI 模型根据你的描述写出的行。 |
| 导入预览 | 工具里的 导入,或表列表中的 ⋮ → 导入 CSV。 | 预览 CSV、TSV、JSON、NDJSON、SQL 或 XLSX 文件,并导入到表中。 |
| 查询历史 | 工具里的 查询历史。 | 查看你执行过的内容,把查询重新载入控制台,清空列表。 |
| 已保存的查询 | 工具里的 已保存的查询。 | 重新载入、删除已保存的查询并用文件夹分组;读取 Supabase 代码片段。 |
| 安全 | 工具里的 安全,或架构健康里的 在 Policies 中打开。 | 五个标签页:脱敏规则、角色、行级安全策略、GRANT 和 REVOKE,以及生物识别锁。 |
| 审计日志 | 工具里的 审计日志。 | 查看模块执行过的内容,并把语句送回控制台。 |
| 分享 | 工具里的 分享。 | 复制连接或查询,保存、打开或粘贴配置。 |
| 项目 | 打开一个云账户连接(Neon、Supabase、PlanetScale、Atlas、Turso、D1 或 Upstash)。 | 搜索并打开账户下的项目。 |
| 项目面板 | 点按 Neon、PlanetScale、Turso 或 Supabase 项目。 | 读取分支、部署请求、架构、连接字符串、区域或连接池,并浏览表。 |
| 架构差异(PlanetScale) | 打开 PlanetScale 项目时的 对比结构。 | 读取部署请求部署时 PlanetScale 将执行的语句。 |
MongoDB
MongoDB 服务器 连接(主机、端口、数据库、用户、密码,服务器需要时还有 TLS)会打开该数据库的集合列表。测试连接 执行真正的 ping:它会打开套接字、协商 TLS 并完成 SCRAM 登录,所以绿色结果意味着凭据有效。PocketCode 用自己的客户端与 MongoDB 通信,因为官方 Java 驱动需要 Android 没有提供的库,并且它通过 DNS over HTTPS(Google 或 Cloudflare)解析 mongodb+srv:// 地址。Atlas 集群会列在其账户下,并打开一个连接表单:填写数据库用户和密码(Atlas 不会通过 API 提供它们)然后保存。
你可以
- 查看连接中所指定数据库的集合(字段为空时用
test)。每个集合有一个计数,应用把它标为 行;这个数字是集合的文档数。 - 在 安全 → 角色 中只读地查看 Atlas 项目的数据库用户(需选中一个集群)。
- 用 分享 复制不含密码的连接。
做不到的事及原因
- 读取集合中的文档:点按集合会打开数据查看器,但没有列也没有行。也没有 shell、聚合构建器,没有创建集合、管理索引或导出集合的界面。尚未提供
- 为每个集合都显示计数:为了让列表保持快速,只有列表中的前 40 个集合会计数。其余的不显示数字,这和 0 不是一回事。有意为之
- 从账户读取 Atlas 数据库密码:Atlas 不会通过其 API 提供密码,所以要在连接表单中自己填写。第三方
Redis
Redis 连接(主机、端口、密码、可选的用户、TLS,以及数据库编号,默认 0)会打开键浏览器。测试连接 会发送真正的 PING。PocketCode 用自己的客户端与 Redis 通信,连接要求时走 TLS。当 Upstash 返回其密码时,Upstash 数据库会在这里作为真正的 Redis 数据库打开;如果它只给出 REST 令牌,则通过 REST 作为单个只读表打开,没有键浏览器。
键浏览器
Redis 浏览器 用 SCAN 一页一页地列出键,不会像 KEYS 那样阻塞服务器。每个键是一张卡片,标题显示已加载的键数量。
你可以
- 用 搜索键… 过滤。停止输入 350 毫秒后,应用会发送
SCAN … MATCH *text*,这是由服务器完成的子串匹配。 - 查看每个键:类型图标和徽标(
string、list、set、sorted set、hash、stream,RedisJSON 之类的模块类型则显示 otro)、TTL:(剩余秒数、永不过期 或 键已不存在;剩余 1 到 60 秒时为红色)以及内存大小,或 未报告大小。 - 点按键可打开其值的预览,截断为 200 个字符(屏幕上最多 40 行)。按类型:string 读取
GETRANGE 0..199,list 读取前 10 项,set 读取 10 个随机成员,sorted set 读取 10 项及其分数,hash 读取前 10 个字段(HSCAN),stream 读取 3 条记录。 - 修改 TTL:计时器图标(设置 TTL),在 TTL(秒) 中填写秒数,然后 保存。负数会移除过期时间(
PERSIST)。 - 删除键:垃圾桶图标(删除)。它会经过显示
DEL <key>的 危险操作 对话框;仍要执行 确认。应用会告诉你服务器是删除了该键,还是它本来就不存在。 - 点按 加载更多 获取下一页。一页是 200 个键,一页最多会进行 40 轮、每轮 250 的
SCAN然后停止。 - 打开 Redis CLI(终端图标)或 Redis 监视器(监视器图标)。
做不到的事及原因
- 在界面上修改值、创建键或重命名键:没有对应的控件。请使用 CLI(
SET、RENAME……)。尚未提供 - 在浏览器里选择逻辑数据库(
SELECT n):它取自连接中保存的数据库编号。有意为之 - 在服务器不支持
MEMORY USAGE或 ACL 禁止它时看到键的大小:卡片会显示 未报告大小,而不是画出 0 B。第三方 - 在浏览器里读取完整的值:预览在 200 个字符处截止。其余部分请用 CLI。有意为之
CLI
Redis CLI 把你输入的内容原样发送给服务器,并以 redis-cli 的方式打印回复。屏幕上的历史保留最近 200 条。
你可以
- 在输入框中输入命令(PING、GET key、SET key value…),用播放按钮(运行)执行。
- 使用四个快捷标签:
PING、KEYS *、INFO和DBSIZE。KEYS *和任何可能阻塞服务器的命令一样,会要求确认。 - 在同一个 危险操作 对话框中确认危险命令,原因用西班牙语显示(应用在所有语言下都用西班牙语书写)。这些命令是:
FLUSHALL、FLUSHDB和SWAPDB;删除和覆盖类命令(DEL、UNLINK、RENAME、GETDEL、MOVE、COPY、LREM、SREM、HDEL、ZREM、SPOP、LPOP、RPOP、XDEL、XTRIM……,以及*STORE命令和SORT … STORE);服务器管理类命令(CONFIG、ACL、CLIENT、DEBUG、SHUTDOWN、REPLICAOF、CLUSTER、SCRIPT、FUNCTION、MODULE、RESET……,CONFIG GET或ACL WHOAMI之类的只读子命令除外);会阻塞服务器的命令(KEYS、MONITOR、BLPOP……);以及EXPIRE、PEXPIRE和EXPIREAT。
做不到的事及原因
- 保存常用命令或脚本:没有对应的控件。尚未提供
- 在 CLI 里订阅频道:处于订阅状态的连接不能执行普通命令。监视器为此会打开自己的连接。有意为之
监视器
Redis 监视器 在你打开时自动启动。它每 2 秒向服务器请求一次 INFO,并在自己的第二个连接上订阅所有频道(PSUBSCRIBE *)。在空闲的服务器上你会看到各项计数,以及 已连接。目前还没有任何频道发布消息。
你可以
- 查看 内存、客户端、操作数(每秒操作数,显示为 /s)和 版本。
- 观察 事件:每条发布的消息及其频道、文本(截断为 500 个字符)和时间。列表保留最近 200 条。
- 用 停止 停止,再用 启动监视器 重新开始。
做不到的事及原因
- 看到其他客户端执行的命令:监视器不使用 Redis 的
MONITOR命令,只用INFO和发布的消息。有意为之 - 看到数值随时间的变化:只显示当前值。尚未提供
Cloud Firestore
当你设置了自己的 Firebase 项目(在 集成 中),或在 Backend Manager 中连接了 Firebase 时,Cloud Firestore 连接会出现在连接列表里。访问数据有两条路径,你能做什么取决于打开的是哪一条。
| 路径(按标题栏所示) | 你会得到什么 |
|---|---|
| 只读 · Backend Manager 中的 Google 连接 | 使用你在 Backend Manager 中的 Google 会话。你选择一个 Firebase 项目(选择一个 Firebase 项目,之后是 切换项目),它会列出根集合和某个文档的子集合。它以你 Google 账号的权限读取该项目的 (default) 数据库,从不写入。 |
| 在 设置 → 集成 → Firebase 中配置的项目 | 通过 Firebase 客户端 SDK 使用你自己项目的密钥(项目 ID、应用 ID 和 API 密钥,来自它的 google-services.json),作为一个独立的 Firebase 应用运行,绝不是 PocketCode 自己的项目。它在你的 Firestore 安全规则之下读取、编辑和删除文档。它无法列出集合,所以要自己输入路径。 |
浏览器
Firestore 浏览器 一次显示一个层级:根(集合)、一个集合(它的文档)或一个文档(它的 子集合)。路径显示在顶部。
你可以
- 当你的 Google 账号有多个项目时选择一个:选择一个 Firebase 项目。标题栏会显示 项目:… 和 切换项目。
- 在 集合路径 中输入路径(例如
users),然后点按箭头(打开路径)。集合的路径段数为奇数(users、users/alice/posts),文档为偶数(users/alice)。 - 点按文档以打开它的子集合(Google 路径)。返回手势会先上移一层,然后才离开界面。
- 读取文档:每个集合最多 50 个,每张卡片显示文档 ID、前 4 个字段和 还有 N 个字段。
- 在你自己的项目上,用铅笔图标(编辑)编辑文档:编辑文档 会打开一个 JSON 字段,保存 写入它。用垃圾桶图标删除;它会经过显示
DELETE <path>的 危险操作 对话框。 - 点按筛选图标(Firestore 查询)来构建查询。
做不到的事及原因
- 在 SDK 路径上列出根集合或某个文档的子集合:Firestore 的客户端 SDK 没有对应的调用。请改为输入集合的路径。第三方
- 在 Google 路径上编辑或删除:它是只读的,所以不会绘制编辑和删除按钮。要写入,请在 集成 中配置该项目。有意为之
- 在浏览器里创建新文档:它只能编辑和删除已有的文档。尚未提供
- 在浏览器里查看一个集合中超过 50 个文档:请使用 Firestore 查询,它最多可到 500 个。有意为之
- 读取具名的 Firestore 数据库:两条路径都只读取
(default)。有意为之
"age": "31"),保存 用 set() 把这段 JSON 写回去,这会替换整个文档。你没有重新输入为 JSON 值的数字、布尔值、map 或 list 都会被存成文本。保存前请重新输入它们("age": 31),或者在 Firebase 控制台中编辑文档。查询
Firestore 查询 构建由 Firestore 执行的真正的 Firestore 查询。它不是对屏幕上已有文档的过滤。
你可以
- 输入 集合 路径。留空则使用你正在浏览的路径。
- 在 WHERE 子句 下点按 添加子句。每个子句有一个 字段、一个运算符标签(
==、!=、<、<=、>、>=、array-contains或in)和一个 值。图标可以移除子句。 - 值会自动识别类型:
null、true、false、整数、小数和 ISO 日期(2026-10-04或2026-10-04T10:00:00Z)都会被识别,其他一律视为文本。把值放在引号中('123')可强制为文本。使用in时,用逗号分隔各个值,含逗号的值要加引号。 - 设置 排序依据(一个字段)和 上限(默认 25;应用把它限制在 1 到 500 之间)。
- 点按 运行查询。在 文档 下你会得到数量,以及每个结果一张包含全部字段的卡片。
做不到的事及原因
- 降序排序:界面上没有对应的开关,所以结果始终升序排序。尚未提供
- 查询集合组(所有同名的集合):没有对应的控件。尚未提供
- 在没有索引的情况下,对不同字段组合使用不等式,或按另一个字段排序:Firestore 需要复合索引,它的错误连同创建索引的链接会原样显示。第三方
监控
从工具里的 监控 或起始界面上的 监控 打开 监控。标题栏中的刷新图标会重新加载全部内容(在 Supabase 上还会加载 架构健康)。如果有告警被触发,顶部会出现一条红色横幅列出它们:已触发 N 个告警、前 3 个,以及 忽略。
| 标签页 | 显示什么 |
|---|---|
| 会话 | 连接的延迟和计数、服务器的会话,以及本应用执行过的查询。 |
| 慢查询日志 | 你最慢的成功语句,来自审计日志。 |
| 索引 | 各表的索引,以及对其使用情况的估算(PostgreSQL 方言)。 |
| 告警 | 你定义的规则,在你打开或刷新监控时检查。 |
| 架构健康 | 仅 Supabase:项目的安全和性能建议。 |
| 慢查询 | 仅 PlanetScale:读取量最大的查询,来自 Insights。 |
会话
第一个标签页有三个部分。
你可以
- 连接:延迟(在你的连接上执行一次
SELECT 1所用的毫秒数,在你打开或刷新监控时测量)、连接数(到数据库的已打开连接,仅限本地 PostgreSQL)、每秒查询数(始终显示 —)、今日查询数 和 平均查询时间(根据你今天零点以来在本应用中执行的查询)。 - 服务器会话,仅限本地 PostgreSQL:
pg_stat_activity中的每个客户端会话(监控自身使用的会话除外),显示其pid、状态、等待事件、数据库、应用 及其查询(前 200 个字符)。两个图标对会话执行操作:取消查询(pg_cancel_backend:停止查询但保留会话)和 终止会话(pg_terminate_backend:关闭连接)。 - 本应用发出的查询:当前会话的查询,每个带状态和耗时。图标 终止查询 取消正在运行的查询,清除已完成 清空已结束的查询。
- 从起始界面打开、没有连接时,会话来自本地引擎。
做不到的事及原因
- 查看 Neon、Supabase、MySQL、Redis、Firestore 或 MongoDB 的会话:模块只从内嵌的 PostgreSQL 读取会话。在其他地方它会说“… 不报告打开的会话 — 只有内嵌引擎会。”有意为之
- 得到每秒查询数:它没有被测量,所以卡片显示 —。尚未提供
慢查询日志
慢查询日志由你的 审计日志 生成:你的成功语句中达到或超过阈值的、最慢的 50 条。它不是服务器自己的慢查询日志。
你可以
- 用标签 100 ms、500 ms、1000 ms 和 5000 ms 选择 慢查询阈值(默认 500)。列表在你打开监控或点按刷新图标时重建,所以修改阈值之后请刷新。
- 每条记录显示它的耗时(超过 2000 ms 时为红色)、时间、SQL(最多 200 个字符、3 行)和表。
- 没有内容可显示时会说 未检测到慢查询。
做不到的事及原因
- 在应用重启后保留阈值:它不会被保存。尚未提供
- 看到并非来自本应用的慢语句:这份日志由你自己的审计记录组成,而不是服务器的。有意为之
索引
连接中各表的索引,仅适用于 PostgreSQL 方言的连接:本地引擎、Neon、Supabase 和 PostgreSQL 服务器。
你可以
- 查看每个索引:它的名称、它的表和列,唯一时有 唯一 徽标,以及 N 次使用(估算)。
- N 次使用(估算) 是估算值,不是计数器:它统计你的审计日志中该表的、SQL 提到该索引第一列的记录条数。大于 0 时徽标为绿色。
- 没有索引时会说 无索引。
做不到的事及原因
- 在 MySQL、SQLite 或其他引擎上看到索引:该标签页保持为空。尚未提供
告警
告警规则保存在设备上,每次你打开或刷新监控时检查。
你可以
- 点按 添加告警,给它起一个 告警名称,选择一个 告警类型 和一个 阈值。用规则的控件打开、关闭或删除它。N 条规则 显示规则数量。
- 当前值高于阈值时告警会触发。已触发的告警显示在监控顶部的红色横幅里。
做不到的事及原因
- 在应用关闭时,或你没有查看监控时收到通知:后台不会运行任何东西。规则只在你打开或刷新监控时检查。尚未提供
- 在引擎不报告大小的地方对 Database Size 告警:该规则会被跳过,而不是以零触发。第三方
| 告警类型 | 它衡量什么 |
|---|---|
| Table Row Count(rows) | 当前打开的表的行数,在行数已知时。 |
| Query Duration(ms) | 你自今天零点以来在本应用中执行的查询的平均耗时。 |
| Database Size(MB) | 当前打开的数据库的大小。只在引擎会报告它的地方检查:PostgreSQL 方言的连接、Turso 和 Cloudflare D1。 |
| Slow Queries Count(queries) | 慢查询日志在当前阈值下有多少条记录。日志最多保留 50 条,因此阈值为 50 或更高时永远不会触发。 |
| Error Rate(%) | 失败语句占审计日志全部记录的百分比,而不只是今天的记录。 |
架构健康(Supabase)
仅限 Supabase 项目,并且在你点按监控的刷新图标之后才会出现(或者从指向架构健康的 在 Database 中打开 操作进入)。它以只读方式显示 Supabase 已经知道项目存在的问题:安全和性能建议,分成两个部分。
你可以
- 查看每条发现:它的级别、标题、它 影响对象 的实体、修复建议和一个 了解更多 链接。
- 在行级安全的发现上,点按 在 Policies 中打开 跳转到 安全 → 策略。
做不到的事及原因
- 从这里修复某条发现:该标签页只读取 Supabase 的建议。有意为之
慢查询(PlanetScale)
仅限 PlanetScale 项目,且 Insights 有数据时。“PlanetScale Insights:此分支中读取或扫描最多的查询。”
你可以
- 查看每条查询及其表、耗时、次数、读取行数 和 扫描行数,与 API 给出的一致(耗时单位为微秒)。
做不到的事及原因
- 看到以毫秒为单位的 PlanetScale 数据,或与慢查询日志合并:这两个来源使用不同的单位,所以保持分开。有意为之
仪表板和图表
仪表板 把查询作为小组件放在一起,图表 绘制控制台的上一次结果。两者都没有套餐限制。仪表板以查询及其形式保存在设备上,从不保存结果:每次打开时,数字都会重新从引擎读取。
仪表板
仪表板 以标签页形式打开你的仪表板。+ 图标(新建仪表板)创建一个(仪表板名称)。没有仪表板时会显示“你创建的仪表板会显示在这里。”
你可以
- 用标签页切换仪表板。对每一个你都可以 重命名 或 删除;删除时会询问“删除“X”及其 N 个小组件?此操作无法撤销。”
- 手机竖屏时小组件为 1 列,其他情况为 2 列,宽度达 1,200 dp 或更宽的屏幕为 3 列。在单列网格中,2 列宽的小组件直接占满一行。
- 用小组件自己的按钮刷新它;每个小组件都会显示它的读取时间(读取于 …)。
- 小组件也可能显示:创建此小组件时使用的连接已不可用。、此小组件没有查询语句。、查询没有返回任何行。、没有可绘制的数值列。 或引擎自己的错误。
做不到的事及原因
- 把仪表板移到另一台设备:它们只存在于这台设备上。尚未提供
小组件
小组件由一条查询、一种形式、一个宽度和一个刷新间隔组成。你可以从控制台标题栏中的图表图标(添加到仪表盘)添加,该图标只有在结果成功时才可用,也可以从 图表 里的同一个图标添加。
你可以
- 在面板中设置 小组件标题,查看将要保存的 SQL(在那里显示,不可编辑),选择目标 仪表板 或 新建仪表板,并选择 形式、宽度 和 自动刷新。
- 宽度:1 列 或 2 列。自动刷新:关闭,或在仪表板显示在屏幕上时每 5、15、30、60 或 300 秒刷新一次。
- 每个小组件有标题、刷新按钮和一个菜单(小组件选项),里面有 编辑小组件、上移、下移 和 删除。编辑小组件 可以修改标题、SQL、形式、宽度和间隔。
做不到的事及原因
- 执行会写入的语句:小组件自己并按定时器运行,所以只会执行
SELECT、WITH、EXPLAIN、SHOW和DESCRIBE。写入类语句不会执行,并显示“未执行:UPDATE 会写入数据,而仪表板只执行只读查询。”有意为之 - 在小组件中使用
:name参数:它自行刷新时没有地方获取这个值。有意为之 - 拖动小组件来重新排序:请使用 上移 和 下移。有意为之
- 刷新得比每 5 秒更快:每秒重新查询一次的小组件,就是对别人数据库的一个
SELECT循环。有意为之 - 在 Redis、MongoDB 或 Firestore 上使用小组件:它们没有 SQL,所以小组件会显示引擎的错误。有意为之
| 形式 | 它绘制什么 |
|---|---|
| 表 | 前 5 行,以及“N 行 · M 列”。 |
| 单值 | 第一行的第一个单元格,放大显示。适用于 COUNT(*) 或任何只有一个数字的聚合。 |
| 柱状图、折线图 和 饼图 | 第一列作标签,第一个数值列作度量,最多 24 个点。值不是数字的行会被略去。折线图至少需要 2 个点。 |
服务器标签页
第一个标签页 服务器 只在本地 PostgreSQL 运行时存在。它实时读取引擎;其中的内容不会被保存。
你可以
- 查看 会话、提交、回滚、缓存命中、数据大小、版本、死锁 和 检查点。标签页显示在屏幕上时,它们每 5 秒刷新一次。
做不到的事及原因
- 在任何其他引擎上看到这个标签页:它来自内嵌的 PostgreSQL,而后者只在 64 位 ARM 手机上运行。设备
- 编辑或保存这个标签页:它不包含任何查询。有意为之
图表
图表 绘制 SQL 控制台的上一次结果。请先执行一条查询:它需要至少有 2 列的成功结果,否则应用会提示“Execute a query with at least 2 columns first”。
你可以
- 选择 Bar、Line、Pie、Scatter 或 Heatmap(图表类型名称是固定的英文文本)。
- X 轴是第一列。Y 轴是它之后的第一个数值列,饼图使用同样的两列,且只取正值。Scatter 用前两个数值列交叉绘制(只有一个数值列时没有可绘制的内容)。不是数字的单元格按 0 绘制。
- 用图表旁边的两个图标切换图例和网格(切换图例 和 切换网格)。
- 标题栏里的刷新图标会根据控制台的上一次结果重绘图表。
- 点按保存图标(导出图表),通过系统文件选择器写出白色背景的 PNG。
- 点按图表图标(添加到仪表盘),把查询保存为小组件。
- 没有数值列时它会说“无图表数据。请先执行包含数值列的查询。”
做不到的事及原因
- 一次绘制多个度量:坐标轴上只放一个数值列,因为多个共用一条轴会无法阅读(数百与个位数放在一起)。有意为之
测试数据
测试数据 用它自己编造的行填满你打开的表。这个界面叫 模拟数据生成器。它按列工作:每一列都有自己的数据类型,由列名推断得出,你也可以修改。请先打开一张表,否则应用会提示“Open a table first — the mock data goes into it.”
你可以
- 用标签 10、50、100、500 或 1000 选择行数(行数)。
- 打开 遵守约束,以复用外键列中已有的值(“可用时使用现有的外键值”;每个外键列最多 1,000 个不同的值)。
- 在 列配置 下,修改任意列的类型。类型分为几组:Identity、Security、Numbers、Dates、Text、Web、Places、Business 和 Other。起始类型是根据英文、西班牙文和葡萄牙文的列名猜出来的,所以名为
nombre或cidade的列会得到姓名或城市。 - 由数据库自己填写的主键(自增或默认值)会被略去,所以
INSERT不会写上它。 - 点按 生成 N 行:它会在当前连接上为每一行执行一条
INSERT,一条接一条。遇到第一个错误就会停止,并提示“在 N 行后停止:…”,已插入的行保留。 - 或者使用 AI 生成:在 描述数据 中写出你想要的内容(例如“含产品的逼真电商订单”),然后点按 使用 AI 生成。在你接受提供商的同意对话框之后,模型会收到表名、它的列(名称、类型、主键、非空)、引擎名称和你的描述,绝不会收到你的行。它必须返回与该表完全匹配的 JSON 数组,然后逐行插入。如果没有任何提供商响应,应用会提供 使用内置生成器。
做不到的事及原因
- 在免费版上插入超过 100 行,或使用 AI 时超过 50 行:选择 500 或 1000 时数量会被悄悄截短,而按钮上仍写着“生成 1000 行”。Pro
- 选择超过 1000 行:最大的标签是 1000,而 AI 在 Pro 上最多 200。代码在 Pro 上允许最多 100,000,但界面没有提供。尚未提供
- 在 Redis、MongoDB 或 Firestore 上生成行:这些引擎没有可以插入的表,所以那里不提供该工具。有意为之
导入数据
导入 把文件加载到当前 SQL 连接的某张表里。它会打开系统文件选择器(任何文件类型),然后是 导入预览。你可以从工具里的 导入,或表列表里的 ⋮ → 导入 CSV 到达这里(菜单写的是 CSV,但它支持六种格式)。
| 格式 | 如何读取 |
|---|---|
| CSV 和 TSV | 分隔文本。带引号的字段没问题,即使里面有逗号或换行。第一行是表头 决定列名;不勾选时列名为 col_1、col_2…… |
| JSON | 对象数组,或单个对象。每个对象是一行,它的键是列。 |
| NDJSON | 每行一个 JSON 对象。 |
| SQL | 只有转储文件中的 INSERT INTO 语句会被当作行读取。列名取自语句(没有列名时为 col_1……)。 |
| XLSX | Excel 文件的第一个工作表。 |
预览
选好文件之后,导入预览 会显示读到了什么。格式先根据内容判断,其次才看文件名。在你点按 导入 之前不会写入任何内容。
你可以
- 以徽标形式看到检测到的格式、数量(N 行 · M 列,仅当整个文件都已统计时)以及 预览数据 下的前 50 行。
- 编辑 表名。它起初是整理过的文件名(
clientes-2026.xlsx变成clientes_2026)。 - 勾选或取消 第一行是表头(默认开启;只对 CSV、TSV 和 XLSX 有意义)、创建表(默认开启:执行
CREATE TABLE IF NOT EXISTS)和 先清空(默认关闭:先对该表执行DELETE FROM,勾选后变红)。 - 查看 检测到的类型 标签。它们来自 50 行样本(“类型是从预览行推断的,不是整个文件。”);创建表 会根据整个文件重新推断类型。
- 点按 导入。一条消息会告诉你有多少行进入了该表。
做不到的事及原因
- 在免费版上导入到已有 4 张表的数据库,即使导入到已有的表也不行:限制在读取文件之前就检查,并会打开 数据库 Pro 窗口。Pro
- 导入
.xls、.ods或六种格式之外的任何格式,或读取 Excel 文件第一个工作表以外的工作表。有意为之 - 导入到 Redis、MongoDB 或 Firestore:它们不使用 SQL。有意为之
事务和批次
| 连接 | 行如何写入 |
|---|---|
| 本地 PostgreSQL | 一个事务。如果任何一个批次失败,所有内容都会撤销,包括导入创建的表:“导入在第 N / M 行后已回滚,未保存任何数据:…” |
| 其他所有 SQL 连接 | 每个批次各自是原子的。如果有一个失败,之前的仍会保留:“已导入 N / M 行:…”建表和 先清空 作为单独的语句在各批次之前执行,所以它们同样不会被撤销。 |
| 任意连接 | 行通过最多 200 行(或 60,000 个字符)的 INSERT … VALUES 语句写入。 |
从剪贴板导入
仅限本地引擎,表列表中的 ⋮ → 从剪贴板导入 会把你复制的文本当作 SQL 转储来执行。
你可以
- 复制一份转储,打开菜单,点按 从剪贴板导入。文本在每个
;处被拆分,语句逐条执行,不使用事务。如果有些失败,你会看到失败的数量和前三条不同的消息。 - 导入会以
IMPORT写入 审计日志。
做不到的事及原因
- 在字符串或函数体里保留分号:转储在每个
;处都会被拆分,所以这些语句会出错。有意为之 - 在免费版上,数据库已有 4 张表时导入会创建表的转储:会先打开 数据库 Pro 窗口。Pro
查询历史和已保存的查询
两个工具,都与你在控制台中执行过的 SQL 有关。
查询历史
查询历史 按从新到旧列出你执行过的内容。它是所有连接共用的一份列表,保存在设备上,最多 500 条。
你可以
- 查看每条记录:SQL(3 行)、行数或错误图标、耗时、连接名称 · 日期 以及错误。
- 点按一条记录,把它的 SQL 载入控制台。
- 点按 全部清除 清空列表。它不会先询问。
- 带参数的查询以模板形式保存。Turso 和 Upstash 的派生凭据在保存前会从文本中抹去。
做不到的事及原因
- 看到查询的结果:只保存 SQL 及其数字,不管该工具的一行说明怎么写(“你执行过的一切,以及结果”)。有意为之
- 搜索、过滤或删除单条记录:只有 全部清除。尚未提供
已保存的查询
已保存的查询 列出你从控制台保存的查询(⋮ → 保存查询),按最近使用排序。
你可以
- 点按一条查询,把它载入控制台。垃圾桶图标(删除)会不经确认直接删除它。
- 用文件夹整理查询:新建文件夹(文件夹名称)、标签 全部、未分类 以及每个文件夹一个标签,查询上有 移动到文件夹(有了文件夹之后才会出现)。删除文件夹 只删除文件夹本身:“删除文件夹不会删除查询,只是把它们移出来。”
- 在 Supabase 项目上,来自 Supabase 部分以只读方式列出你 Supabase 仪表盘里的代码片段,带有 在控制台中打开 和 保存副本。
做不到的事及原因
- 在免费版上保存第 6 条查询:上限是 5 条已保存的查询(保存副本 也计算在内)。Pro
- 在这里编辑 Supabase 代码片段:它们是只读的。请在控制台中打开,或保存一份副本。有意为之
安全
安全 有五个标签页:脱敏、角色、策略、权限 和 生物识别。从工具里打开它时总是从 脱敏 开始。
脱敏
“脱敏只改变本应用中的显示,不会改动数据库中的数据。”规则保存在设备上。
你可以
- 点按 添加脱敏规则,输入 列模式 并选择 脱敏类型。可以逐条打开、关闭或删除规则。
- 模式是列名中必须出现的一段文本,不区分大小写:
mail会对email和mail_backup脱敏。它不是正则表达式,所以email|password会去找这段原样的文本。第一条匹配的已启用规则生效。 - 被脱敏的列在数据查看器中显示脱敏后的值。要看真实值,请打开 列 面板并使用 明文显示(生物识别锁开启时为 明文显示(指纹))。它持续到你离开该表为止。
做不到的事及原因
- 对 SQL 控制台、导出、复制或 AI 聊天读取的内容脱敏:脱敏只作用于数据查看器的表格。有意为之
- 在模式中使用正则表达式。有意为之
| 脱敏类型 | 你看到什么 |
|---|---|
| Full Mask | ******** |
| Partial Email | 第一个字母、*** 和域名:j***@example.com。@ 之前不足 2 个字符、或没有 @ 的值显示 ********。 |
| Partial Phone | 前 3 个字符、-***-** 和最后 2 个字符:555-***-**67。不超过 4 个字符的值显示 ****。 |
| First/Last Chars | 第一个和最后一个字符,中间是 ***:J***n。不超过 2 个字符的值显示 **。 |
| SHA-256 Hash | 该值 SHA-256 哈希的前 16 个十六进制字符,后面是 ...。 |
| REDACTED | [REDACTED] |
角色
角色 读取连接中真实的角色或用户。
你可以
- PostgreSQL(本地引擎、Neon、Supabase 或服务器):
pg_roles中的每个角色(不含系统的pg_*角色),连同它的权限以及它能访问的public架构中的表。 - MySQL、MariaDB 和 PlanetScale:账户,来自
mysql.user;当它不可读时(PlanetScale 隐藏了它),则来自表权限,并列出它们的表。 - MongoDB Atlas:选中某个集群时,只读地显示项目的数据库用户。
- 其他任何引擎会说“该引擎没有用户和角色。”
做不到的事及原因
- 在这里创建、编辑或删除角色:该标签页只读。有意为之
- 看到 Atlas 用户的密码:Atlas 不公开它。第三方
策略(行级安全)
策略 为任何 PostgreSQL 连接(Supabase、Neon、直连的 Postgres、本地引擎)显示行级安全(Row Level Security),读取自 pg_policies。
你可以
- 查看每张表被标为 RLS 已启用 还是 未受保护,以及每条策略的名称、命令、角色、
USING和WITH CHECK。 - RLS 关闭的表会说“行级安全已关闭:任何拥有此连接的人都可以读取所有行。”RLS 开启但没有策略时,它只说明只有绕过 RLS 的角色(表的所有者、
service_role)才能读取或写入它。 - 点按 复制 SQL,复制
ALTER TABLE … ENABLE ROW LEVEL SECURITY或CREATE POLICY …,由你自己去执行。 - 你也可以通过 Supabase 架构健康 中的 在 Policies 中打开,或 Backend Manager 的 在 Database 中打开 操作到达这里。
做不到的事及原因
- 从这个标签页执行任何内容:“这里不会执行任何操作:Copy SQL 只是复制。”有意为之
- 在 MySQL、SQLite 或 NoSQL 引擎上看到策略:行级安全只存在于 PostgreSQL。第三方
权限
权限 在当前连接上执行真正的 GRANT 和 REVOKE 语句。
你可以
- 点按 授予(授予权限),输入 角色,选择 表,并在 选择权限 下勾选权限:SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、ALTER、INDEX 或 ALL PRIVILEGES。它会执行
GRANT … ON … TO …。 - 该列表中某条记录的 撤销 图标,会对这条记录所持有的权限执行
REVOKE。角色名和表名必须是普通标识符(字母、数字和下划线,不能以数字开头)。
做不到的事及原因
- 查看或撤销已经存在的权限:列表只显示你在本次会话中授予的内容,所以 撤销 只能作用于它们。想看真实的权限,请用 角色。尚未提供
生物识别锁
生物识别锁 开关(“访问敏感数据时需要生物识别身份验证”)保存在设备上。
你可以
- 开启后,打开模块会显示 数据库已锁定(“请验证以打开你的数据库”),并要求你的指纹或面部,或者设备的 PIN、图案或密码。
- 开启后,明文显示(指纹) 会在显示被脱敏的值之前再次询问。
- 锁关闭时,列表在每一行都写着 不询问,并附上说明“关闭锁定后,这些操作都不会询问。”
做不到的事及原因
- 指望这把锁在删除表、显示已保存的密码或打开 PRODUCTION 连接时进行确认:界面把它们列为 会询问,但应用目前并不会询问。尚未提供
| 适用范围 中的条目 | 应用的行为 |
|---|---|
| 删除、清空或丢弃表 | 标为 会询问。应用在这里并不会要求你的指纹。 |
| 明文查看脱敏值 | 会询问,通过 明文显示(指纹)。 |
| 显示已保存的密码 | 标为 会询问。应用在这里并不会要求你的指纹。 |
| 打开 PRODUCTION 连接 | 标为 会询问。应用在这里并不会要求你的指纹。 |
审计日志
审计日志 在设备上保存一份模块执行过的内容的列表:最多 1,000 条,任何内容都不会离开手机。
你可以
- 查看每条记录:操作(
SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、ALTER、VACUUM或OTHER,取自语句的第一个词,错误、破坏性和写入操作会着色)、日期(dd/MM HH:mm:ss)、SQL(3 行)、表徽标、行数(大于 0 时)、耗时(大于 0 时)以及错误。 - 记录的内容包括:从 SQL 控制台执行的每条语句、从剪贴板导入的 SQL 转储(记为
IMPORT),以及用 新建表 表单创建的表(记为CREATE)。 - 点按重放图标(重新执行),把该记录的 SQL 送回控制台。它不会执行它。
- 点按扫帚图标(全部清除)清空日志。它不会先询问。
- 表徽标是语句执行时打开的那张表,而不是从 SQL 里读出来的表。
- 记录保存的是执行时的 SQL,其中任何
:name参数的值都已填入。查询历史保存的则是模板。
做不到的事及原因
- 看到每条记录是在哪个连接上执行的:它被保存了,但界面不显示。尚未提供
- 搜索、过滤或导出日志。尚未提供
- 审计 Redis、MongoDB 或 Firestore 上的操作:它们不经过控制台的执行器,所以不会留下记录。有意为之
分享
分享(标题栏上写的是 分享)把连接、查询或模块的配置带出应用。它不是协作:别人不会获得访问权限,也没有云同步。
你可以
- 在 快速分享 下,分享连接 把当前连接复制为 JSON(
name、type、host、port、database、user,绝不含密码),分享查询 复制控制台当前的查询。控制台为空时它会提示这一点。 - 在 配置(N 个连接 · M 个已保存的查询)下,保存到… 通过文件选择器写出
pocketcode-db-<date>.json,内含列表中的每个连接(已保存的密码变成***)、你已保存的查询(名称和 SQL)以及安全模式偏好。复制 把同样的 JSON 放到剪贴板上。 - 打开… 读取这样的文件,并添加其中你没有的连接。重复的连接(相同的类型和
host:port/database)会被跳过,***密码会留空,所以你连接时要自己输入。它会报告“Config imported: N connection(s)”。 - 粘贴(在 复制 旁边)会导入剪贴板上的 JSON,方式与 打开… 相同:重复项和
***密码的规则相同,报告也相同。剪贴板上没有文本时会提示“剪贴板中没有可导入的文本。”
做不到的事及原因
- 用 打开… 或 粘贴 导入超出套餐允许数量的连接:在 Free 上,计数包含你已保存的连接和本次会话中先前添加的连接,所以总共 1 个时,其余的会被跳过,并弹出 数据库 Pro 窗口。Pro
- 用 打开… 或 粘贴 找回已保存的查询:它们只导入连接,文件里的查询会被忽略。尚未提供
- 在模块重新加载后保留 打开… 或 粘贴 添加的连接:它们只存在于内存里,就像一次会话。尚未提供
- 通过剪贴板把配置移到另一台设备:界面自己就说明了,剪贴板用来粘贴到聊天里,文件才是用来迁移的。有意为之
云端项目
打开云 账户 连接(Neon、Supabase、PlanetScale、MongoDB Atlas、Turso、Cloudflare D1 或 Upstash)会在 项目 中显示该账户下的项目。
列表
项目 列出提供商账户中的内容。
你可以
- 用 搜索项目… 搜索(只有项目多于一个时才会出现)。
- 查看每个项目:它的名称、状态 · 区域、等宽字体的 ID,以及项目处于活动状态时的绿点。
- 点按一个项目。Neon、PlanetScale、Turso 和 Supabase 会打开 项目面板;D1 直接进入它的表;Atlas 打开连接表单(见 MongoDB);Upstash 在返回密码时作为 Redis 数据库打开,否则通过 REST 作为只读表打开。
做不到的事及原因
- 创建或删除项目:列表只显示它们。没有项目时会说“从提供商的仪表盘创建一个”。有意为之
项目面板
每个提供商填充它所拥有的部分。主按钮是 浏览数据表。
| 提供商 | 面板显示什么 |
|---|---|
| Neon | 连接字符串,已遮盖。显示或隐藏 图标会显示它,并出现 复制(在 Android 13 及更高版本上,复制的内容会被标为敏感),并带有警告“其中包含明文的数据库密码。”显示它时不会要求你的指纹。还有 分支。 |
| PlanetScale(MySQL) | 分支、部署请求、架构(活动分支的 SQL,最多 14 行,带复制按钮)和 架构检查(schema-lint 警告及其严重程度)。 |
| Turso | 可用区域,账户的目录。 |
| Supabase | 项目(区域、Postgres 版本、状态)、连接池(始终遮盖;复制的是你看到的内容)和带 使用直接连接 的 直接连接。它会打开连接表单,并把连接池填成一个带 TLS 的 PostgreSQL 连接;输入一次数据库密码,它就会被保存为一个独立的连接,名为“(direct)”,带有真正的 EXPLAIN 和架构设计器。 |
做不到的事及原因
- 看到 Supabase 或 Atlas 的数据库密码:它们的 API 不提供。第三方
- 从面板里编辑分支或部署请求:它只读。有意为之
PlanetScale 部署差异
在 PlanetScale(MySQL)项目上,对比结构 不会打开快照差异:它显示项目列表中的第一个部署请求部署时,PlanetScale 将执行什么。该界面叫 架构差异,其中的部分是 部署请求差异。它是免费的。
你可以
- 逐条语句地查看:表、操作(一个徽标)和 DDL。红色的 会删除数据 — 不可撤销 标记破坏性语句。如果没有任何变化,它会说“此部署请求没有任何改动。”
- 在项目已打开时通过 对比结构 到达,或者通过 Backend Manager 中指向架构差异的 在 Database 中打开 操作到达。
做不到的事及原因
- 选择另一个部署请求:它始终是项目面板 部署请求 列表中的第一个。有意为之
- 从这里批准、合并或部署:该界面只读。有意为之
免费版与 Pro
本页几乎所有内容都是免费的。下面是套餐对它施加的限制(取自套餐的定义),以及与这些工具有关的两项 Pro 功能。
| 限制或功能 | 免费版 | Pro |
|---|---|---|
| 每个数据库的表数(它也会阻止 导入 和会创建表的 SQL 转储) | 4 | 无限制 |
| 已保存的查询 | 5 | 无限制 |
| 你自己的已保存连接(本地引擎和云账户不计入;通过分享里的 打开… 或 粘贴 添加的连接,以及已打开的 PlanetScale 分支会计入) | 1 | 无限制 |
| 控制台标签页 | 2 | 无限制 |
| 本地引擎中的数据库数量(新建数据库) | 1 | 无限制 |
| 每次运行的测试数据 | 100 行(使用 AI 时 50 行) | 最多 100,000 行,但界面上最大的标签是 1000(使用 AI 时 200 行) |
| 对比结构(快照差异) | 不可用。PlanetScale 部署请求差异免费。 | 可用 |
| 计划备份 | 不可用。创建、导出、导入、恢复和删除备份都是免费的。 | 可用 |
无套餐限制
- Redis、Firestore 和 MongoDB 的界面。
- 监控 及其告警、仪表板 和 图表。
- 测试数据 和 导入,表中列出的限制除外。
- 查询历史、安全、审计日志、分享、项目面板和 PlanetScale 部署差异。
隐私与安全
存储了什么、存在哪里,以及什么会离开设备:
- 没有 PocketCode 服务器:这些工具与你的主机、提供商的 API 或本地引擎通信。Redis 和 MongoDB 使用 PocketCode 自己的客户端直接连接你的服务器。
mongodb+srv://地址通过 DNS over HTTPS 解析,这次查询会发往 Google 或 Cloudflare。 - Firestore 通过你的 Google 会话(只读路径)读取,或通过带有你自己项目密钥的 Firebase 客户端 SDK 读取。SDK 作为独立的 Firebase 应用运行,绝不在 PocketCode 自己的项目内部。
- 在设备上:查询历史(最多 500 条)、审计日志(最多 1,000 条)、已保存的查询、脱敏规则、告警规则、仪表板和架构快照,都是模块放在应用私有存储中的文件,按账户区分(
history.json、audit.json、saved_queries.json、masking_rules.json、alert_rules.json、dashboards.json、schema_snapshots.json)。它们保存的是你执行过的 SQL,其中可能包含字面值。Turso 和 Upstash 的派生凭据在保存前会从该文本中抹去。 - 仪表板 保存的是查询,绝不是结果:数字每次都会重新读取,并且只保存在内存里。
- 密码 不在这些文件里:它们存放在 Android 的加密存储中。分享连接 不含密码,保存到… 和 复制 会把它替换成
***。项目面板中的 Neon 连接字符串确实包含明文密码,显示它时不会要求你的指纹。 - AI:在你接受提供商的同意对话框之前不会发送任何内容。使用 AI 生成 发送表名、它的列(名称、类型、主键、非空)、引擎名称和你的描述,绝不发送你的行。
- 脱敏 只改变数据查看器显示的内容。SQL 控制台、导出和 AI 聊天工具不会被脱敏。
- 生物识别锁 目前只覆盖进入模块和显示被脱敏的值,别无其他。
- 分析统计 在你于设置中开启 允许分析统计 之前是关闭的。开启后,查询会记录引擎类型、耗时和行数。失败的查询只记录错误的类别,绝不记录它的文本。
限制
目前还不能用,或与你预期不同的地方,免得你措手不及:
- MongoDB 显示集合和计数,不显示其中的文档。没有 shell,也没有聚合构建器。尚未提供
- Redis 的值不能在键浏览器中编辑,只能通过 CLI。浏览器只能修改 TTL 和删除键。尚未提供
- Firestore 在 SDK 路径上无法列出集合,因为客户端 SDK 没有对应的调用。第三方
- Firestore 通过 Backend Manager 的 Google 连接时是只读的。有意为之
- Firestore 编辑会把你没有重新输入为 JSON 的每个值都以文本写回,并替换整个文档。尚未提供
- 会话 的取消和终止功能只存在于本地 PostgreSQL。有意为之
- 索引使用情况 是根据你的审计日志估算的,而且索引标签页只在 PostgreSQL 方言的连接上有效。尚未提供
- 告警 只在你打开或刷新监控时检查。后台不会运行任何东西。尚未提供
- 仪表板 只执行只读语句,而且刷新不会快于每 5 秒一次。有意为之
- 测试数据 在免费版上最多 100 行(使用 AI 时 50 行),不经提示直接截短。Pro
- 导入 在免费版上到 4 张表就会停止,即使导入到已有的表也一样,并且支持六种格式。Pro
- 权限 只列出你在本次会话中授予的内容。角色显示的才是真实的。尚未提供
- 生物识别锁 在删除表、显示已保存的密码或打开 PRODUCTION 连接之前不会询问,尽管界面上说它会。尚未提供
- 分享:打开… 和 粘贴 只导入连接,并且只在内存里。尚未提供
- 查询历史和审计日志 不能搜索、过滤,也不能逐条删减,而且审计日志不显示连接。尚未提供
- Redis、Firestore 和 MongoDB 连接会列出九个面向 SQL 的工具;备份 和 导出 对它们不起作用,也没有集合或键的导出功能。有意为之
- 部分消息:Redis、Firestore 和 MongoDB 界面的一些提示,以及少数 toast,无论应用使用什么语言,都是用西班牙语或英语写的。尚未提供
故障排查
这些工具的消息按应用所写的原样列出(尖括号表示由应用填入的值),以及对应的处理办法。少数条目描述的是一种情况,而不是一条消息。
Firestore 不允许客户端应用列出集合。请输入集合路径以浏览。
你在 SDK 路径上,Firestore 在这条路径上无法列出集合。在 集合路径 中输入路径(例如 users),然后点按箭头。要获得集合和子集合的列表,请在 Backend Manager 中连接 Firebase:那条路径是只读的,但它能列出它们。
只读:<project> 通过 Backend Manager 中的 Google 连接打开。要编辑文档,请在 设置 → 集成 → Firebase 中配置此项目。
Google 路径上编辑和删除按钮是隐藏的。在 集成 的 Firebase 下添加项目的项目 ID、应用 ID 和 API 密钥:该项目随后会通过 SDK 打开,并且可以编辑。
Google 拒绝读取 <project> 中的 Firestore(403)。该会话可能没有 Firestore 权限,或此项目未启用 Firestore API。
请在 Google Cloud 中为该项目启用 Cloud Firestore API,或在 Backend Manager 中重新连接 Firebase。如果该项目同时也是你为 SDK 配置的项目,浏览器在被拒绝之后会自动退回到 SDK。
你的 Firebase Google 会话已过期或已被撤销。请在 Backend Manager 中重新连接 Firebase。
在那里重新连接 Firebase,然后再次打开 Cloud Firestore 连接。
无法读取 <project>:请在 Backend Manager 中连接 Firebase,或在 设置 → 集成 → Firebase 中配置此项目。
你选择的项目两条路径都没有。请选择另一个项目,或者补上这两条路径之一。
<project> 没有名为 (default) 的 Firestore 数据库。
只读取 (default) 数据库。请在 Firebase 控制台中创建它,或选择另一个项目。
以 FAILED_PRECONDITION 开头并带有链接的错误
Firestore 需要为该查询创建复合索引(对多个字段使用不等式,或按另一个字段排序)。打开错误中的链接创建索引,等待它构建完成,然后重新执行查询。
PERMISSION_DENIED — Your Firestore security rules rejected this operation.
你自己的安全规则拒绝了这次读取、编辑或删除。请在 Firebase 控制台中修改规则,或通过不依赖这些规则的 Google 路径读取该项目。
<engine> 不报告打开的会话 — 只有内嵌引擎会。
会话来自本地 PostgreSQL 的 pg_stat_activity。Neon、Supabase、MySQL 和 NoSQL 引擎在这里不会报告它们。
未执行:<VERB> 会写入数据,而仪表板只执行只读查询。
小组件自己并按定时器运行。请编辑该小组件,把它的 SQL 改成 SELECT;写入类语句请在控制台中执行。
创建此小组件时使用的连接已不可用。
小组件会记住它创建时所用的连接。请删除该小组件,然后在打开正确连接的情况下从控制台重新添加。
Execute a query with at least 2 columns first
图表 绘制控制台的上一次结果。请执行一条返回标签列并且至少还有一列的查询,然后打开 图表。
Open a table first — the mock data goes into it.
测试数据 会插入到你打开的表中。请先从 表 中打开一张,再使用该工具。
Stopped after N rows: …
生成器一次插入一行,遇到第一个错误(例如唯一约束或外键约束)就停止。已插入的行保留。使用 AI 生成时,消息是“在 N 行后停止:…”。请检查列类型,开启 遵守约束,或者生成更少的行。
没有 AI 提供方作出响应。可以改用内置生成器填充该表。
没有模型响应。请在 AI 设置中检查你的 AI 提供商,或点按 使用内置生成器,用无需 AI 的生成器填充该表。
导入在第 N / M 行后已回滚,未保存任何数据:…
在本地 PostgreSQL 上,整个导入是一个事务,所以一行出错就会撤销所有内容,包括导入创建的表。请修正消息中指出的那一行,然后重新导入。
我选择 导入 时会打开 数据库 Pro
免费版每个数据库允许 4 张表,并且在读取文件之前就检查这个限制,即使你导入到已有的表也一样。Pro 取消了这个限制。
TTL de 0 segundos borraría la clave al instante. Usa DEL si eso es lo que quieres.
Redis 会删除 TTL 为 0 的键,所以应用拒绝这样做(这条消息在所有语言下都是西班牙语)。用负数来移除过期时间,用正数来设置它,或者直接删除该键。
<host>:<port> cerró la conexión. Si el servidor exige TLS, activa SSL en la conexión (y al revés).
TLS 不匹配:服务器要求 TLS 而连接中关闭了它,或者正好相反。请编辑该连接并切换 SSL。
Contraseña rechazada por Redis. Revisa la contraseña de la conexión.
密码或用户不对。如果服务器要求密码而连接中没有设置,消息会是“Este Redis exige contraseña y la conexión no tiene ninguna.”
Upstash 未返回此数据库的密码或 REST 令牌。
账户的令牌无法读取这个数据库的凭据。打开它时会退回到只读的 REST 表,或者失败。
该引擎没有用户和角色。
角色 只读取 PostgreSQL、MySQL、MariaDB、PlanetScale 和 Atlas。如果你看到“无法读取此连接的角色。”,说明该连接的用户无权读取它们。
请输入数据库用户名和密码——Atlas 不通过 API 提供它们——然后保存。
Atlas 从不返回数据库密码。请在连接表单中填写用户和密码,测试连接,然后保存。
Config imported: N connection(s)
打开… 或 粘贴 只会把这些连接添加到当前会话。模块重新加载之后它们就没有了,所以请用连接表单再次保存它们。如果同时弹出 数据库 Pro 窗口,说明 Free 只保留你自己的一个连接,文件中的其余连接被跳过了。
剪贴板中没有可导入的文本。
粘贴 在剪贴板上没有找到文本。请先复制一份配置(在同一屏幕上点 复制,或从另一台设备复制),然后再点 粘贴。要导入文件,请用 打开…。
数据库已锁定
生物识别锁已开启。点按 解锁,并用指纹、面部或设备的 PIN 验证。如果你看到“此窗口不支持屏幕锁。”,说明系统提示无法在那里显示,模块会在没有锁的情况下打开:如果想要使用这把锁,请在应用的普通窗口中使用该模块。