01
先读这段
如果你除了数据库之外,还用 Supabase 做认证、存储、边缘函数和实时,那么迁到 CapyDB 意味着替换四个产品而不是一个。这可能是对的决定——当应用已经被这种耦合拖住时通常就是——但那是一个项目,不是一个下午。
如果你主要把 Supabase 当作托管的 Postgres,其余只是顺带,那这就是一次直白的迁移,本页剩下的内容是写给你的。
迁移
Supabase 是一个后端平台;CapyDB 是这类平台底下的那个数据库。这一页会坦率地讲,你真正想要的是哪一个。
01
如果你除了数据库之外,还用 Supabase 做认证、存储、边缘函数和实时,那么迁到 CapyDB 意味着替换四个产品而不是一个。这可能是对的决定——当应用已经被这种耦合拖住时通常就是——但那是一个项目,不是一个下午。
如果你主要把 Supabase 当作托管的 Postgres,其余只是顺带,那这就是一次直白的迁移,本页剩下的内容是写给你的。
02
03
Supabase 的行级安全策略是针对它的 auth schema 和 JWT claim 辅助函数写的。这些东西在 Supabase 之外并不存在,所以直接导出再恢复,留给你的是一堆引用着不存在函数的策略。
CLI 会做转换。转换器是开源的,会把策略改写成基于原生 PostgreSQL 会话设置的形式,并把无法翻译的部分报告出来,而不是悄悄产出一份放得太宽的结果。
capydb migrate rls ./supabase --out capyrls04
05
直接从你的 Supabase 连接字符串导入。导入器知道哪些平台 schema 不该跟着走并会过滤掉,于是你最终拿到的是自己的数据,而不是别人控制平面的一份副本。
capydb import \
--project my-app \
--source-url "$SUPABASE_DATABASE_URL" \
--follow06
07
生产切换前请告诉我们。我们会审阅方案、在窗口期在线,并备好一条恢复路径。