功能简介
Table 定义名称、权限、Row Security、启用状态、Columns 与 Indexes;Column 用明确类型约束 Row 字段。AppBase 支持文本、数值、布尔、时间、枚举、关系和地理等列类型,结构变更可能进入异步状态。
当前支持范围
- 数据表(SUPPORTED):管理 Table、索引、表级权限、行级安全开关与可用状态。
- 类型化列(SUPPORTED):为表定义文本、数值、布尔、时间、枚举、地理与关系等类型化 Column;结构变更可能异步完成。
适用场景
- 为业务对象建立可验证的数据结构。
- 使用必填、默认值、数组和关系约束输入。
- 为查询提前规划 Index。
前置条件
- Database 已存在且可用。
- 服务端 Key 拥有 Table/Column 写 Scope。
- 已评估新增必填列、唯一索引和关系的现有数据影响。
Console 操作路径
Console → Project → Databases → Database → Create table。进入 Table → Columns 或 Indexes 管理结构;Rows 页面只用于数据,不应代替结构设计。
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);
await tables.createTable({
databaseId: '<DATABASE_ID>',
tableId: ID.unique(),
name: 'articles',
rowSecurity: true,
enabled: true
});REST 示例
REST · Bash
curl 'https://<APPBASE_HOST>/v1/tablesdb/<DATABASE_ID>/tables' \
-X POST \
-H 'X-Appwrite-Project: <PROJECT_ID>' \
-H 'X-Appwrite-Key: <API_KEY>' \
-H 'Content-Type: application/json' \
--data '{"tableId":"unique()","name":"articles","rowSecurity":true,"enabled":true}'常见错误
| 现象 | 处理建议 |
|---|---|
| Column 状态处于 processing | 等待异步 Worker 完成后再写依赖该列的数据。 |
400 或 query invalid | 检查类型、默认值、数组、长度和 Index 定义。 |
409 | Column key 或 Index key 冲突时调整结构。 |
当前限制
- 大型 Table 的结构变更可能需要更长处理时间。
- 删除或收紧类型可能造成数据不可逆影响。
- Schema Version 才是保存目标结构历史的增强入口;普通 Column 操作不等于完整版本管理。
Appwrite 兼容说明
Table/Column 对应兼容的数据结构能力,方法签名与类型列表以 AppBase SDK 生成物为准。
AppBase 增强说明
Column 可附加 Comment,Table 结构也可进入 Schema Version 历史。
发布状态和验证 Commit
origin/main 已核验。验证 Commit:0363062a1c7ea08741975bb5ba0c3361663c9353。
权威来源文件列表
backend-candidate:src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/backend-candidate:src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Create.phpbackend-candidate:src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Update.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 实现证据。