浏览全部文档 · 35/37

功能简介

Migration API 可创建 AppBase/Appwrite、Firebase、Supabase、NHost 或 CSV 迁移任务,并提供列表、详情、失败重试和删除。来源是否可用取决于实例配置、外部网络、源系统 Credential 和目标 Project 配额。

当前支持范围

  • 项目数据迁移(SUPPORTED):通过受鉴权的 Migration API 导入 Appwrite、Firebase、Supabase、NHost 或 CSV 数据,并查询、重试和删除迁移任务;可用来源取决于实例配置。

适用场景

  • 把用户、数据库、文件等受支持资源迁入 Project。
  • 用 CSV 导入/导出 Table 数据。
  • 查询异步任务状态并针对失败任务重试。

前置条件

  • 已备份源系统和目标 Project。
  • 使用只满足迁移范围的临时 Credential。
  • 实例 Migration Worker、队列、存储和外部网络可用。

Console 操作路径

Console → Project → Settings → Migrations。选择来源、资源范围并在受保护表单输入 Credential;提交后查看任务状态和报告。完成后轮换或撤销源系统 Credential。

SDK 示例

SDK · TypeScript
import { Client, Migrations } from 'appbase-console-sdk';

const client = new Client()
  .setEndpoint('https://<APPBASE_HOST>/v1')
  .setProject('<PROJECT_ID>')
  .setKey('<MIGRATION_API_KEY>');
const migrations = new Migrations(client);

const jobs = await migrations.list({ total: true });
const job = await migrations.get({ migrationId: '<MIGRATION_ID>' });
void [jobs, job];

REST 示例

REST · Bash
curl 'https://<APPBASE_HOST>/v1/migrations/<MIGRATION_ID>' \
  -H 'X-Appwrite-Project: <PROJECT_ID>' \
  -H 'X-Appwrite-Key: <MIGRATION_API_KEY>'

权限模型

创建/重试/删除要求 migrations.write,读取要求 migrations.read;Credential 只能通过受保护请求传入,不进入公开示例、日志或证据。

常见错误

现象处理建议
Migration failed读取报告,区分源认证、网络、配额、数据校验和目标冲突。
重复资源根据任务报告决定跳过、清理或使用受支持重试,不盲目重放。
Source unavailable检查外部网络、源 endpoint 与临时 Credential。
Worker/queue unavailable保留基础设施错误,修复环境后再重试。

当前限制

  • 来源和资源类型不是所有组合都支持。
  • 迁移不自动验证应用语义、索引性能或所有外部依赖。
  • 内部平台 Schema Migration、Registry、Pool Init 和 Runbook 不属于公开 Project Migration。

Appwrite 兼容说明

迁移来源分类只作兼容参考;具体 API、资源与状态由 AppBase Migration Action 和 SDK 决定。

AppBase 增强说明

AppBase 在受鉴权 Project 边界内提供多来源和 CSV 任务管理,并公开状态、报告、重试与清理。

发布状态和验证 Commit

origin/main 已核验。验证 Commit:0363062a1c7ea08741975bb5ba0c3361663c9353

权威来源文件列表

  • backend-candidate:app/controllers/api/migrations.php
  • backend-candidate:src/Appwrite/Platform/Workers/Migrations.php
  • backend-candidate:tests/e2e/Services/Migrations/MigrationsBase.php
  • frontend-candidate:console/src/routes/(console)/project-[region]-[project]/settings/migrations/

Appwrite taxonomy 仅作信息架构参考:https://appwrite.io/docs/advanced/migrations。上游页面不是 AppBase 实现证据。

继续阅读