功能简介
Database 是结构化数据的顶层容器,Table 定义结构与权限,Row 保存业务数据。AppBase 同时保留兼容接口并提供 TablesDB 表达;新页面与增强能力以 Database、Table、Column、Row 术语为主。
当前支持范围
- 数据库(SUPPORTED):在项目边界内创建和管理数据库,并通过权限化 API 组织结构与数据。
适用场景
- 为应用领域拆分结构化数据。
- 通过 Table 与 Row 权限保护多租户数据。
- 为 Aggregation、Transactions 与 Schema Version 建立基础。
前置条件
- Project 已启用 Databases API。
- 服务端 Key 拥有
databases.read/databases.write等最小 Scope。 - 已确定 Table 结构、索引和 Row 权限策略。
Console 操作路径
Console → Project → Databases。创建 Database 后进入详情页管理 Tables、Schema Versions、Backups、Settings 与 Usage;具体标签受版本和实例能力影响。
SDK 示例
SDK · TypeScript
import { Client, TablesDB, ID } from 'appbase-console-sdk';
const client = new Client()
.setEndpoint('https://<APPBASE_HOST>/v1')
.setProject('<PROJECT_ID>')
.setKey('<API_KEY>');
const tables = new TablesDB(client);
const database = await tables.create({
databaseId: ID.unique(),
name: 'Application data',
enabled: true
});REST 示例
REST · Bash
curl 'https://<APPBASE_HOST>/v1/tablesdb' \
-X POST \
-H 'X-Appwrite-Project: <PROJECT_ID>' \
-H 'X-Appwrite-Key: <API_KEY>' \
-H 'Content-Type: application/json' \
--data '{"databaseId":"unique()","name":"Application data","enabled":true}'常见错误
| 现象 | 处理建议 |
|---|---|
401 或 user_unauthorized | 确认请求使用了当前接口允许的 Session、JWT 或 API Key;不要把 Console Session 与 Project API Key 混用。 |
403 或 general_access_forbidden | 检查 API Key Scope、组织角色以及资源级 Permission;认证成功不等于拥有目标操作权限。 |
404 | 核对资源 ID 与 Project;不可见资源可能与不存在资源使用相同响应,客户端不应据此探测资源。 |
429 | 按响应的限流语义退避,避免并发重试放大请求。 |
当前限制
- 删除 Database 是破坏性操作,应先验证备份与依赖。
- 结构创建/更新可能异步完成,不能只看 HTTP 接受响应。
- 底层 OceanBase/MySQL 适配、存储模式与 Pool 不属于公开 Database API。
Appwrite 兼容说明
核心层级与 REST/SDK 调用方式保持兼容;TablesDB 是文档首选术语。
AppBase 增强说明
AppBase 在同一层级增加 Column Comment、Row Aggregation 与 Schema Version。
发布状态和验证 Commit
origin/main 已核验。验证 Commit:0363062a1c7ea08741975bb5ba0c3361663c9353。
权威来源文件列表
backend-candidate:src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Create.phpbackend-candidate:src/Appwrite/Platform/Modules/Databases/Http/TablesDB/XList.phpbackend-candidate:tests/e2e/Services/Databases/DatabasesBase.phpfrontend-candidate:console/src/routes/(console)/project-[region]-[project]/databases/
Appwrite taxonomy 仅作信息架构参考:https://appwrite.io/docs/products/databases。上游页面不是 AppBase 实现证据。