跳转到内容
返回首页
Tutorial

在手机上管理数据库

完整指南:直接在 PocketCode 中连接、查询并管理 PostgreSQL、MySQL、 MongoDB 等多种数据库。

3 min
作者 Pelayo Naredo
在手机上管理数据库

在你的 Android 上管理数据库

PocketCode 的数据库模块支持 多种不同的引擎,让你无需电脑即可管理数据。有些引擎提供完整的 SQL 控制台;另一些(MongoDB、Redis、Firestore)只有浏览器,本文会说明具体是哪些。

支持的引擎

  • PostgreSQL — 内嵌在手机上(64 位 ARM,无需 root),或连接你自己的服务器
  • MySQL / MariaDB — 你自己的服务器(没有本地 MariaDB)
  • Neon — 无服务器 Postgres
  • Supabase — 带 REST API 的托管式 PostgreSQL
  • MongoDB Atlas — 托管集群,通过你的 Atlas 账户打开
  • MongoDB — 你自己的服务器,NoSQL 文档
  • PlanetScale — 无服务器、可扩展的 MySQL
  • Turso — 边缘端的 libSQL/SQLite
  • Upstash — 无服务器 Redis
  • Redis — 你自己的服务器
  • Cloudflare D1 — Cloudflare 边缘上的 SQLite
  • Cloud Firestore — Firebase 的文档数据库

快速连接

PostgreSQL

-- Connection setup
-- Host: db.myproject.com
-- Port: 5432
-- Database: production
-- User: admin
-- SSL: Required

-- Once connected, run queries directly
SELECT
  u.name,
  COUNT(o.id) as total_orders,
  SUM(o.amount) as total_spent
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.created_at >= '2024-01-01'
GROUP BY u.name
ORDER BY total_spent DESC
LIMIT 10;

MongoDB

# 连接你自己的服务器或 Atlas
# URI: mongodb+srv://user:[email protected]/mydb

粘贴 URI,PocketCode 会自动填好表单(mongodb+srv:// 地址会通过 DNS over HTTPS 解析)。测试连接会做一次真实的 ping,包括 TLS 和登录。之后你得到的是该数据库的集合列表,每个集合附带文档数。此版本没有 MongoDB shell、查询编辑器或聚合构建器,所以无法在应用中运行 find 或 aggregate。

PostgreSQL(内嵌,本地)

如果你想在设备上拥有一个真正的数据库,又不想租用服务器,这是最合适的选择。它是在应用内运行的 PostgreSQL 18.2,因此你编写的是标准 PostgreSQL SQL。它仅提供给 64 位 ARM 手机(x86_64 模拟器和 Chromebook 上不可用)。应用登录需要联网;已有登录会话时打开应用可离线使用,之后本地数据库在设备上运行:

-- 创建本地表
CREATE TABLE IF NOT EXISTS notes (
  id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  title TEXT NOT NULL,
  content TEXT,
  created_at TIMESTAMPTZ DEFAULT now(),
  updated_at TIMESTAMPTZ DEFAULT now()
);

-- 插入笔记
INSERT INTO notes (title, content)
VALUES ('我的第一条笔记', '在 PocketCode 中创建');

-- 搜索笔记(不区分大小写)
SELECT * FROM notes
WHERE title ILIKE '%pocket%'
ORDER BY updated_at DESC;

管理器功能

可视化浏览器

侧边面板列出你的连接及其表。表的详情页提供列、索引、键、触发器和 DDL 标签页,此外还有 ER 图、表结构设计器、执行计划和备份。远程 MySQL 不会列出索引、外键或触发器。

查询编辑器

  • 按方言(PostgreSQL、MySQL、SQLite)进行 SQL 语法高亮
  • 一排补全建议,涵盖关键字、表、视图、列和函数
  • 查询历史(500 条)、已保存的查询和多个标签页
  • 导出结果(CSV、JSON 等格式);控制台每次查询最多保留 500 行
  • MongoDB、Redis、Upstash 和 Firestore 没有 SQL 控制台

数据查看器

  • 每页 100 行,按主键排序
  • 点按列标题排序,并使用筛选面板(12 种运算符;BETWEEN 暂时不可用)
  • 长按单元格进行编辑,或选择多行后复制或导出;编辑和删除需要可用的主键
  • 此版本中「插入行」不会打开表单

应用场景

生产环境调试

-- Find recent errors
SELECT error_message, COUNT(*) as count, MAX(created_at) as last_seen
FROM error_logs
WHERE created_at >= NOW() - INTERVAL '1 hour'
GROUP BY error_message
ORDER BY count DESC;

快速监控

-- Database status
SELECT
  schemaname,
  relname as table_name,
  n_live_tup as row_count,
  pg_size_pretty(pg_total_relation_size(relid)) as total_size
FROM pg_stat_user_tables
ORDER BY n_live_tup DESC;

紧急迁移

在 Neon、Supabase、Turso 和 Cloudflare D1 上,控制台默认处于只读模式;关闭它之后,每次写入在执行前都会显示它将做什么(破坏性写入还会要求确认)。在任何连接上,危险语句都会先经过安全模式检查。

-- Add urgent column
ALTER TABLE users ADD COLUMN phone VARCHAR(20);

-- Backfill data
UPDATE users SET phone = profiles.phone
FROM profiles WHERE users.id = profiles.user_id;

-- Verify
SELECT COUNT(*) FROM users WHERE phone IS NOT NULL;

安全性

  • 凭据以加密方式存储在设备上
  • 支持 SSL/TLS 连接
  • 为 PostgreSQL 和 MySQL / MariaDB 连接提供 SSH 隧道选项(对其他引擎无效)
  • PocketCode 没有自己的服务器夹在中间:应用直接与本地引擎、你的主机或服务商的 API 通信,连接信息不会同步到云端

免费套餐的限制

在免费套餐中,你可以保存一个自己的连接和一个本地数据库,每个连接最多创建 4 张表,保存 5 条查询,并使用 2 个控制台标签页。Pro 会取消这些限制。


在手机上管理数据库不再意味着妥协。借助 PocketCode,你可以获得支持多种不同引擎的完整客户端,就装在你的口袋里。

本文背后的工具

数据库管理器

准备好试用 PocketCode 了吗?

下载应用,开始用手机编程。