Migrar

Migrar do Supabase

Supabase é uma plataforma de backend; CapyDB é o banco de dados por baixo de uma. Esta página é honesta sobre qual dos dois você realmente quer.

01

Leia isto primeiro

Se você usa o Supabase para autenticação, armazenamento, edge functions e tempo real além do banco, mudar para a CapyDB significa substituir quatro produtos, não um. Isso pode ser a decisão certa - geralmente é, quando o app já não cabe nesse acoplamento -, mas é um projeto, não uma tarde.

Se você usa o Supabase principalmente como Postgres hospedado e o resto é incidental, esta é uma migração direta e o restante da página é para você.

02

O que atravessa inalterado

  • -Seu esquema, seus dados, índices, restrições, funções e gatilhos
  • -Extensões, pelo catálogo que você habilita por célula
  • -Suas migrações, seja qual for a ferramenta que as produziu
  • -Toda biblioteca cliente, porque a string de conexão é uma URL postgres:// comum

03

Segurança em nível de linha

As políticas de segurança em nível de linha do Supabase são escritas contra o esquema de autenticação dele e seus utilitários de claims de JWT. Isso não existe fora do Supabase, então um dump-and-restore direto deixa você com políticas que referenciam funções que não estão lá.

A CLI converte. O conversor é de código aberto, reescreve as políticas contra configurações de sessão do PostgreSQL puro e relata tudo o que não conseguiu traduzir em vez de emitir algo que silenciosamente permita demais.

capydb migrate rls ./supabase --out capyrls

04

Autenticação, armazenamento e funções

  • -Autenticação: migre para um provedor de identidade dedicado e coloque os mesmos claims nas configurações de sessão que suas políticas convertidas leem
  • -Armazenamento: armazenamento de objetos mais URLs assinadas; o codemod mapeia a semântica de buckets nos casos comuns e sinaliza o resto
  • -Edge functions: o que sua plataforma de deploy já executa - são funções serverless comuns
  • -Tempo real: replicação lógica do PostgreSQL e LISTEN/NOTIFY estão disponíveis em uma célula
  • -O banco em si: esta é a parte que é de fato só transporte

05

Mover os dados

Importe direto da sua string de conexão do Supabase. O importador conhece os esquemas de plataforma que não devem viajar e os filtra, então você termina com os seus dados e não com uma cópia do plano de controle de outra pessoa.

capydb import \
  --project my-app \
  --source-url "$SUPABASE_DATABASE_URL" \
  --follow

06

A virada

  • -Importe com acompanhamento e rode sua suíte de testes contra a célula enquanto a origem ainda está viva
  • -Aplique as políticas convertidas e teste com uma sessão real, não com uma conexão de superusuário
  • -Rode capydb doctor para variáveis de ambiente ainda apontando para o projeto antigo
  • -Troque as strings de conexão por ambiente, acompanhe os logs e então pare o acompanhamento
  • -Deixe a origem de pé, somente leitura, por uma semana - custa pouco e já salvou gente

07

Fale conosco antes

Avise antes de uma virada em produção. Revisamos o plano, ficamos presentes na janela e mantemos um caminho de restauração pronto.