Laf 迁移 Sealaf 实战指南:用 laf-cli 完整搬迁云函数、数据库、存储与触发器
【免费下载链接】lafLaf is a vibrant cloud development platform that provides essential tools like cloud functions, databases, and storage solutions. It enables developers to quickly unleash their creativity and bring innovative ideas to life with ease.项目地址: https://gitcode.com/GitHub_Trending/la/laf
本文基于 Laf 仓库官方文档 sealaf-migration.md,完整讲解如何将运行在 Laf 上的应用迁移到 Sealaf(Sealos 云开发)。你会掌握基于laf-cli的双端用户配置、云函数/环境变量/依赖/云存储/数据库的分步搬迁命令,以及触发器重建、网站托管开启与cloud.storage.bucket代码适配等收尾工作,读完即可独立执行一次完整的跨平台迁移。
迁移范围:哪些内容会随应用搬迁
Laf 与 Sealaf 共享同一套云开发资源模型,因此迁移对象是一组完整的应用资源,官方文档明确列出的迁移内容包括:
- 云函数
- 云存储
- 数据库
- 触发器
- 环境变量
- 函数依赖
- 自定义域名
- 网站托管
需要特别注意的是:自定义域名和网站托管属于“可选收尾项”,无法随数据一次性自动搬迁,需要在迁移完成后按第 6、7 节手动处理;其余资源均可通过laf-cli的 pull/push 命令完成双向同步。这也是整个迁移方案的骨架:先把 Laf 侧数据拉到本地,再 push 到 Sealaf 侧新应用。
准备工作:双端 PAT 与 laf-cli 的多用户机制
1. 分别在 Laf 和 Sealaf 创建 PAT
迁移的前提是在两个平台各自拥有一个PAT(Personal Access Token,个人访问令牌)。PAT 是laf-cli与云端鉴权的唯一凭证,laf login <PAT>时 CLI 会将其换取一个有时效的 token 并缓存到本地用户配置中。
从源码看,laf login的实现在 action/user/index.ts:它调用pat2token接口把 PAT 换为 token,随后写入本地user.yaml(对应常量USER_SCHEMA_NAME),并记录过期时间。token 有效期由 constant.ts 中的TOKEN_EXPIRE定义为 7 天(3600 * 24 * 7),因此迁移操作宜在一次会话内集中完成,避免 token 过期导致中途失败。
2. 安装 CLI 并注册两个“用户”
laf-cli的“用户(user)”概念实际上是CLI 名称 → 远端服务地址的映射,支持同时维护 Laf 和 Sealaf 两个远端,通过laf user switch切换当前上下文。这一点可以从命令定义 command/user/index.ts 得到印证:user add <name>带有-r, --remote选项用于指定远端地址,未指定时使用默认地址https://api.laf.run(即DEFAULT_SERVER,见 constant.ts)。
npm install -g laf-cli # 注册 Laf 官方服务(-r 指定 Laf 的 API 地址) laf user add laf -r https://laf.run # 注册 Sealaf(-r 填入对应可用区的 API 地址) laf user add sealaf-hzh -r https://sealaf-api.hzh.sealos.run # 先登录 Laf 侧 laf user switch laf # <PAT> 替换为刚刚创建的 Laf PAT laf login <PAT> # 再登录 Sealaf 侧 laf user switch sealaf-hzh laf login <PAT>Sealos 不同可用区对应的 Sealaf API 地址如下,请根据自己应用所在可用区选择:
| 可用区 | Sealaf API 地址 |
|---|---|
| 新加坡 | https://sealaf-api.cloud.sealos.io |
| 广州 | https://sealaf-api.gzg.sealos.run |
| 杭州 | https://sealaf-api.hzh.sealos.run |
| 北京 | https://sealaf-api.bja.sealos.run |
提示:可用
laf user list查看当前用户表(输出包含 current/name/server url 三列,当前用户以*标记),便于确认切换是否生效。
第一步:拉取原 Laf 应用数据到本地
在 Laf 侧登录后,把应用的全部数据拉到本地目录作为“迁移中转站”。以 Laf 上的应用 ID 为变量APPID:
APPID="" # laf 上的 appid mkdir $APPID && cd $APPID laf user switch laf laf app init $APPID # 拉取云函数(函数代码 + 元数据) laf func pull # 拉取环境变量 laf env pull # 拉取函数依赖 </parameter> </function> </tool_call>【免费下载链接】lafLaf is a vibrant cloud development platform that provides essential tools like cloud functions, databases, and storage solutions. It enables developers to quickly unleash their creativity and bring innovative ideas to life with ease.项目地址: https://gitcode.com/GitHub_Trending/la/laf
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考