mcpField
L
lovable-cloud-migration

lovable-cloud-migration

github.com/carolmonroe22云与 DevOps33104 次安装8 周前更新
代码仓库

关于 lovable-cloud-migration

lovable-cloud-migration 是将 Lovable Cloud 项目迁移到自有 Supabase 的 Skill,主要采用同一 Lovable 项目迁移路径。它涵盖数据、存储、函数、身份验证决策与迁移核验,并提供新项目迁移备选方案。

主要功能

  1. 01迁移前盘点项目组件
  2. 02导出并恢复数据库数据
  3. 03迁移存储文件与边缘函数
  4. 04选择密码重置或获批的哈希路径
  5. 05核验目标环境后再移除 Cloud
  6. 06提供新项目迁移备选路径

适用场景

  1. 01将 Lovable 应用迁移至自有 Supabase
  2. 02设置预发布与生产环境
  3. 03保留项目并更换 Cloud 后端
  4. 04不迁移而创建数据备份

MCP 相关

该 Skill 建议使用 Lovable MCP 盘点项目并检查源端,采用可选密码哈希保留路径时则需要它。它还介绍用于目标端自动化的 Supabase MCP;没有 MCP 时也可通过人工检查完成迁移。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/carolmonroe22/lovable-cloud-to-supabase-migration --skill lovable-cloud-migration

安装后在 Claude Code 中输入/lovable-cloud-migration确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
CHANGELOG.md
README.md
references/
migrate-storage-function.md
export-methods.md
migration-steps.md
troubleshooting.md
same-project-path.md
fresh-project-path.md

详细介绍

Lovable Cloud 迁移到自有 Supabase

由 Carol Monroe 创建——Lovable Champion 和 Supabase SupaSquad 成员 此次完整迁移已于 2026-07-06 在真实端到端迁移中得到验证(12 张表、 237 行、23 位用户、40 个存储文件、5 个边缘函数、2 个定时任务)。通过 Lovable MCP 访问密码哈希的能力已于 2026-08-31 重新检查,未暴露任何哈希值。

v4.1.2 变更内容(2026 年 8 月)

Lovable 的官方文档指出,用户密码不会以可用形式导出,并建议为迁移后的用户提供密码重置流程。因此,此技能将密码重置作为默认路径。

原生导出仍是数据库的主要来源,但绝不能将其描述为可以保留密码的导出方式。

如果 Lovable MCP query_database 能够读取受支持 Cloud 项目中的 auth.users.encrypted_password,则仍可使用可选的高级路径。2026-08-31 的布尔值能力检查已成功,此前也已于 2026 年 3 月和 7 月验证了完整的保留哈希流程。此路径为可选方案,涉及敏感信息,且可能发生变化,因为 Lovable MCP 仍处于研究预览阶段。

v4 变更内容(2026 年 7 月)

Lovable 为 Cloud 推出了官方的 Export、Pause 和 Remove 按钮(Cloud 标签页 > Overview > Advanced settings)。Lovable Cloud 不再是永久性的。 这彻底改写了迁移指南:

  • 旧说法“Cloud 无法断开连接”已过时。现在,你可以导出数据库、从同一个项目中移除 Cloud,并连接自己的 Supabase。
  • 原生导出文件(pg_dump 自定义格式备份)现已成为数据库的主要来源。不要假设它能保留可用密码。默认遵循官方重置流程,或在完成能力检查和安全确认后,明确选择高级 MCP 哈希路径。
  • 旧版通过 MCP 将项目迁移到全新 Lovable 项目的 68 步流程,现在已成为备用路径,仅在原生导出无法满足需求时使用。

命名说明:此技能有意保留 lovable-cloud-migration 这个名称,以便 v4 替换任何早期安装的同名技能(其“Cloud 永久存在”的指导现已过时),而不是与之共存。如果此版本和旧版本不知何故同时存在,请以此版本为准——删除旧版本。

此技能的功能

将整个 Lovable Cloud 项目迁移到你自己的 Supabase:数据库架构、数据、RLS 策略、函数、触发器、序列、身份验证用户和身份、存储桶和文件、配置了正确 verify_jwt 的边缘函数、定时任务以及密钥清单。然后移除 Cloud,并将用户自己的 Supabase 连接到同一个 Lovable 项目。默认使用官方密码重置流程;如果高级 MCP 路径可用且已明确获准,则可以保留现有哈希。

决策点(始终从这里开始)

先询问用户的实际需求,然后选择相应路径:

用户的情况路径
“我的应用在我不工作时也会消耗额度”无需迁移。暂停 Cloud(Cloud 标签页 > Overview > Advanced settings)。完成。
“我想备份 Cloud 数据”无需迁移。导出项目数据可以独立使用,每 24 小时一次,并继续在 Cloud 上构建。
准备在自有 Supabase 上运行,数据库 ≤ 5 GB同一项目路径(下文的主要路径):在现有 Lovable 项目上执行导出 + 身份验证方式选择 + 移除 + 连接。
数据库 > 5 GB、无法使用导出或导出失败,或者用户希望原样保留原始 Cloud 项目全新项目路径(旧版备用方案):通过 MCP 完整迁移到新的 Lovable 项目。参见 references/fresh-project-path.md。

提醒用户:Export/Pause/Remove 按钮不消耗额度,只有 Agent 提示词会消耗额度。

为什么要迁移(合理的原因)

Lovable Cloud 是一款可靠的托管后端。只有当项目需要完整 Supabase 设置才能提供的功能时,迁移才有意义:

你想要……为什么需要自己的 Supabase
自定义身份验证邮件(发件人、设计、内容)Cloud 使用 [email protected] 发送邮件
访问完整的 Supabase 控制台SQL 编辑器、扩展、日志、监控
使用服务角色密钥管理操作和某些边缘函数
配置预发布环境和生产环境Cloud 每个项目只有一个数据库
长期拥有自己的基础设施你的项目、你的组织、你的账单

如果这些情况都不适用,且用户对 Cloud 感到满意,就如实说明:无需迁移,目前通过“导出为备份”+“暂停”即可解决大多数顾虑。

前提条件

要求用途设置方法
已启用 Cloud 的 Lovable 账户所有操作-
Supabase 账户所有操作https://supabase.com
项目已连接 GitHub所有操作(函数代码通过代码库迁移)Editor > + menu > GitHub > Connect
Lovable MCP强烈建议用于清点和源端检查;使用可选的密码哈希保留方案时必需在 Claude Code 中使用 /mcp,或前往 claude.ai Settings > Connectors - https://docs.lovable.dev/integrations/mcp-servers
Supabase MCP目标端自动化(创建项目、运行所有验证)内置于 Claude Code - https://supabase.com/docs/guides/getting-started/mcp
带 zstd 的 pg_restore 16+同项目路径的步骤 14macOS:brew install postgresql@18
GitHub CLI(gh)仅限新项目路径brew install gh + gh auth login
Supabase CLI可选——加快函数部署和存储上传https://supabase.com/docs/guides/getting-started

适用于 Claude Code 和 claude.ai,也适用于 Cursor 等其他兼容 MCP 的 Agent。即使没有 MCP,同项目路径仍然可行——用户手动从 Cloud 面板读取计数,Claude 会引导其完成终端步骤。

选择迁移级别

开始前,先询问用户想选择哪个级别:

级别适用人群执行方式
引导式首次迁移、不熟悉技术解释每个阶段,继续前先确认,并展示当前操作
标准熟悉 Supabase/Lovable确认关键决策,以最少的暂停执行各阶段
快速经验丰富、以前迁移过询问源端和目标端,然后执行所有操作,并在检查点报告

无论选择哪个级别,都会在相同的硬性检查点暂停:费用确认、第 7 阶段检查点以及“移除”操作。

关键信息

原生导出
  • 格式:pg_dump v18 自定义格式,采用 zstd 压缩(源数据库为 Postgres 17)。
  • 恢复需要使用基于 zstd 构建的 pg_restore v16+。Homebrew 提供的 libpq 构建版本不包含 zstd,即使版本号看起来没问题,也会报错 "does not support compression with zstd"。请使用 postgresql@18(Trap 18)。
  • Lovable 的文档指出,密码材料不会以可用形式导出。请将导出视为包含用户但不包含可用密码,并计划好密码重置,除非已完成并验证可选 MCP 路径。
  • 支持的数据库流程中包含:架构和数据、RLS 策略、触发器、自定义函数、序列、cron 和存储元数据。请对照基线验证每个组件,因为导出规范可能会变化。
  • 不包含:存储文件(实际字节数据)、边缘函数代码(位于代码库中)、边缘函数密钥值、Vault 密钥值(行会恢复,但使用旧项目密钥加密,无法跨项目恢复)。
  • 导出内容会保存到项目自己的 Cloud 存储中,存储桶名称类似 database_export_06_07_26。移除 Cloud 前请先下载——移除 Cloud 后,该内容也会消失(Trap 17)。限制:5 GB,每 24 小时只能导出一次。
  • “我们会给你发邮件”的提示不可靠。不要等邮件:请检查 Storage 中的导出存储桶(小型数据库约需 1 分钟)。
密码:官方默认方案与高级 MCP 路径
  • 官方默认方案: Lovable 表示密码不会以可用形式导出。移除 Cloud 前,请构建并测试密码重置流程。
  • 高级选项: 运行能力检查,只返回计数,绝不返回哈希。如果可以访问非空哈希,请说明这些值会经过 MCP/Agent 执行流程,取得明确批准,然后仅迁移必需的最少认证字段。
  • 绝不要将哈希粘贴到聊天中、打印、提交到代码库或存储在普通项目文件夹中。登录测试后,请删除受保护的临时文件。
  • 如果能力检查失败、Agent 无法保证对机密的安全处理,或者预期使用密码的用户缺少哈希,请为该用户采用重置流程。OAuth 和无密码用户可能确实没有哈希。不要擅自设置密码。
Lovable 端
  • 连接自有 Supabase 后,Lovable Agent 可以向其部署边缘函数(已直接向 Agent 确认,且遵循 config.toml)。它无法设置边缘函数密钥——只有用户可以在 Supabase 控制台中设置。
  • LOVABLE_API_KEY 是由系统管理的工作区密钥,独立于 Cloud。移除 Cloud 后它仍会保留。重新接线后,AI 功能仍可正常工作(Trap 25)。
  • 连接 Supabase 集成会自动重写 .env(填入正确的 URL 和密钥,无需手动编辑)。但它也可能会用模板覆盖 src/integrations/supabase/client.ts,导致现代(TanStack)技术栈项目的 SSR 出现问题(Trap 23)。
  • GitHub 同步是双向的。你在 Supabase 中删除的临时辅助函数,如果仍留在代码库中就会重新出现——请在所有地方都删除它们(Trap 24)。
  • Remix 仍然无法用于迁移——它会继承 Lovable Cloud。
安全
  • .backup 文件包含个人和认证数据,也可能包含敏感的凭据材料。请像对待密码一样处理:仅保存在本地,绝不要提交,并在迁移后删除。
  • 如果数据库密码在迁移期间出现在聊天、脚本或 AI 会话中,请在结束时轮换密码(Dashboard > Settings > Database)。
  • 将任何迁移文件推送到公开代码库前,请扫描其中是否含有项目引用、密钥、电子邮件和个人数据。

严格顺序

1. EXPORT      the database (button)
2. DOWNLOAD    the export + the storage files    ← they live inside Cloud
3. BUILD       the new Supabase (restore, fix, upload, deploy)
4. AUTH        test password reset, or explicitly run the MCP hash route
5. VERIFY      the 12-count gate — ALL GREEN or stop
6. REMOVE      Lovable Cloud                     ← only now, nothing before this is destructive
7. CONNECT     your own Supabase to the same project

只有在替代方案已就绪并通过验证后,才能移除现有内容。第 6 步之前的每一步中,应用仍会在 Cloud 上运行,且不会受到改动。如果任何步骤失败,请停止并修复——在通过关卡前,Cloud 都是安全网。

同项目路径(主要路径)

完整的 33 步操作手册位于 references/same-project-path.md。 实际执行迁移时请阅读。流程如下:

阶段步骤进行的操作需要人工参与的环节
1. 基线 + GitHub1-412 项计数清单、连接仓库、verify_jwt + 密钥映射如果尚未连接 GitHub,则进行连接
2. 导出 + 下载5-8触发官方导出、在 Storage 中找到导出文件、下载文件、下载存储文件点击导出、下载
3. 创建目标项目9-12创建 Supabase 项目、获取会话池连接字符串确认费用
4. 恢复13-16支持 zstd 的 pg_restore、修复身份信息、确定身份验证方案、检查快照批准高级哈希路径,或使用重置方案
5. 恢复后修复17-21重新创建 Cron + 排查孤立项、清除幽灵行、上传文件、重写 URL、处理序列-
6. 函数 + 密钥22-25部署(CLI/MCP/Agent)、重新输入密钥、重新配置 AI、在所有位置删除临时辅助程序输入密钥
7. 关卡26-28对照基线进行 12 类审计 + 测试身份验证路径 + 确认图像可打开关卡决策
8. 移除 + 连接29-33移除 Cloud、连接自有 Supabase、修复集成覆盖问题、最后整理点击移除 + 连接
必须遵守的停步条件(任何迁移都不能跳过)
  1. 创建 Supabase 项目(第 9 步)前,必须确认费用。
  2. 必须通过关卡(第 28 步):每项计数均为绿色,并通过选定的身份验证路径完成一次登录测试(MCP 保留原密码后使用原密码登录,或完成重置后登录),否则不得继续。Cloud 必须保留为安全保障。
  3. 移除是唯一具有破坏性的点击操作(第 29 步),必须始终由用户亲自操作,不得自动化,也不得在通过关卡前执行。

何时阅读哪些内容

情况阅读
执行主要迁移references/same-project-path.md
无法导出、数据库 > 5 GB,或必须保持原项目不变references/fresh-project-path.md
选择/比较导出方法references/export-methods.md
存储辅助函数(新项目路径)references/migrate-storage-function.md
症状需要修复references/same-project-path.md 中的症状表,然后参阅 references/troubleshooting.md

新项目路径(旧版备用方案)

完整的 v3.1 流程——68 个确定性步骤、9 个阶段,通过 MCP 扫描并重建到一个新的 Lovable 项目中——位于 references/fresh-project-path.md。

以下情况请使用此路径:

  • 数据库超过 5 GB 的导出上限(此外:发送邮件至 [email protected],并提供项目 ID,以申请手动导出)。
  • 项目无法使用导出功能,或导出功能失败。
  • 用户希望原 Cloud 项目继续运行/保持不变(类似暂存环境的迁移,原项目零风险)。

该参考文档保留了自己的陷阱表(陷阱 1-16)和故障排除条目。

v4 中新增的陷阱(17-26,均已命中并经过实时验证)

陷阱严重程度描述预防措施
17严重导出会保存到 Cloud 存储中——移除操作会将其删除严格遵循顺序:导出 -> 下载 -> 最后再移除(步骤 5-7、29)
18阻断brew libpq 的 pg_restore 不支持 zstd,无法处理 .backup 文件先用 pg_restore --list 测试;使用 postgresql@18(步骤 13)
19严重由于还原时外键顺序问题,auth.identities 被丢弃检查数量 + 再执行一次仅数据还原(步骤 15)
20隐蔽错误还原 cron.job 时会出现权限被拒绝;还原或重建的命令仍指向旧项目 URL,并会在失效的端点上运行使用 cron.schedule + 搜寻僵尸任务 + cron.alter_job(步骤 17)
21隐蔽错误storage.objects 中的幽灵行会阻止上传(“resource already exists”);protect_delete 会阻止 SQL DELETE上传前通过 Storage API/CLI 清理,绝不能使用 SQL(步骤 18)
22隐蔽错误签名 URL(?token=)会随旧项目失效;文本替换会让它们看起来像是已迁移重新生成或设为 NULL,绝不要改写(步骤 20)
23故障Supabase 集成会覆盖 client.ts,导致现代技术栈上的 SSR 出错连接后使用包含明确“禁止操作”要求的修复提示词(步骤 31)
24僵尸临时辅助函数会通过双向 GitHub 同步再次复制回来在 Supabase 和代码仓库中都删除(步骤 25)
25意外收获移除 Cloud 后,LOVABLE_API_KEY 仍会保留(工作区密钥)重新配置:使用服务端函数(推荐)或复制密钥(步骤 24)
26数据丢失还原的是导出时的快照;之后的写入不会包含在内询问写入何时停止;重新导出或重新应用增量(步骤 16)

v4.1 中新增的陷阱

陷阱严重程度描述预防措施
27账户锁定当前 Lovable 文档指出,官方导出不包含可用密码默认重置密码;仅在能力检查、明确批准并安全处理后,才使用 MCP 哈希方案

需要人工协助的环节(同项目路径)

步骤用户必须执行的操作无法自动化的原因
1在编辑器中连接 GitHub只能通过控制面板操作
5点击 Export project data仅限控制面板按钮
7下载导出 zip浏览器下载
8下载存储文件(小型项目)浏览器下载(大型项目可用脚本处理)
23输入边缘函数密钥MCP/Agent 均无法设置密钥
29点击 Remove Lovable Cloud操作具有破坏性,因此特意设为手动
30连接自己的 Supabase控制面板 OAuth 流程
33OAuth 提供方、JWT 密钥仅限控制面板设置
费用确认 Supabase 项目费用MCP 需要明确确认

方案要求

工具所需方案费用
Lovable任何包含 Cloud 的方案不固定
Supabase有可用项目名额时,免费方案即可$0-$10/月
Claude Code(可选,可自动完成所有操作)Pro 或 Max$20/月以上
claude.ai(可选,无 CLI 方案)Free/Pro$0 以上
GitHubFree$0

文档链接

资源URL
Lovable Cloud 高级设置(导出、暂停、移除)https://docs.lovable.dev/features/advanced-settings
Lovable GitHub 集成https://docs.lovable.dev/integrations/github
Lovable MCPhttps://docs.lovable.dev/integrations/mcp-servers
Supabase:还原备份https://supabase.com/docs/guides/platform/migrating-within-supabase/dashboard-restore
Supabase:数据库备份https://supabase.com/docs/guides/platform/backups
Supabase MCPhttps://supabase.com/docs/guides/getting-started/mcp
Supabase Edge Functionshttps://supabase.com/docs/guides/functions
Supabase Storagehttps://supabase.com/docs/guides/storage
Supabase Authhttps://supabase.com/docs/guides/auth

Carol Monroe 提供的资源

评论

支持 Markdown