Pular para o conteúdo

Backups

Backups do plano gratuito do Supabase: como fazer sem terminal

No plano gratuito do Supabase não existe backup nenhum: a cópia é você que faz. Como fazer uma pelo painel e o que a rota do CSV deixa para trás.

Vlad Tkachenko8 min de leitura
Um banco de dados, uma tabela tirada dele e, no fim de uma seta, uma pilha pequena de arquivos salvos.

Em resumo

  • Não existem backups do plano gratuito do Supabase. Nada é copiado para lugar nenhum de forma programada, então a única cópia dos seus dados é a que você fez.
  • O painel exporta uma tabela para CSV em poucos cliques. Isso tira as suas linhas e deixa a estrutura para trás: relações, tipos, políticas, contas de login, arquivos.
  • Para uma cópia capaz de reconstruir o projeto, um cliente de banco de dados de mesa faz um dump completo no clique. Sem terminal nenhum.

O seu projeto está no plano gratuito do Supabase e você abriu Database e depois Backups atrás de uma lista de cópias com data para restaurar. Não tem nada ali. Nenhuma data, nenhum botão de restaurar, só um aviso falando em mudar de plano. A página não está quebrada. Não existem backups do plano gratuito do Supabase para listar, porque esse plano não tira nenhum.

É aqui que a maior parte das respostas para isso se perde. Elas entregam um comando pg_dump, que é a ferramenta certa e uma instrução que você não tem como seguir: ela pressupõe um terminal, uma instalação do Postgres e uma string de conexão, e você montou essa app no Lovable ou no Bolt justamente para nunca precisar de nenhuma das três.

Dá para tirar os seus dados pelo painel. Uma rota leva uns dez minutos e te dá as suas linhas. A outra leva mais tempo e te dá o banco de dados.

O plano gratuito do Supabase inclui backups?

Não. O plano gratuito não tira nenhum, e não existe um ajuste que ligue isso. Os backups diários automáticos começam no plano Pro, e a recuperação para um ponto no tempo é um adicional pago acima disso.

Em que plano você está é o fato do qual tudo o mais aqui depende, e dá para conferir em dois minutos. Se você está no gratuito, a única cópia dos seus dados é a que você fez. O resto deste artigo é como fazer uma hoje.

A cópia mais rápida: exporte as suas tabelas para CSV

Abra o Table Editor, escolha uma tabela e use o controle de exportação acima da grade. Ele oferece baixar cada linha como arquivo CSV, e esse arquivo chega na sua pasta de downloads como qualquer outro.

Depois faça de novo para a próxima tabela, e para a seguinte. A exportação trabalha em uma tabela por vez, que é a parte que costuma não ser dita: você precisa saber quais tabelas a sua app tem. A lista à esquerda do Table Editor é essa lista, e vale ler até o fim antes de começar.

Dez minutos de clique te dão uma pasta de arquivos CSV com cada linha que os seus usuários criaram. Como jeito de não perder os seus dados hoje à tarde, são dez minutos bem gastos. O que você tem no fim é uma cópia das linhas, e só das linhas.

O que os arquivos CSV deixam para trás

Cinco coisas, e nenhuma delas é uma linha. Um CSV guarda o conteúdo de uma tabela e nada sobre como aquela tabela foi construída, então o que sobra para você é uma lista do que havia no cômodo, sem nenhuma das prateleiras.

O que fica para trásPor que isso pesa na hora de devolver os dados
As relaçõesUm CSV não faz ideia de qual tabela precisa ser carregada primeiro, então o import falha ou deixa linhas apontando para coisas que sumiram
Os tipos das colunasTudo chega como texto até algo dizer o contrário para o banco novo, e uma célula vazia e um null de verdade viram a mesma coisa
As políticas de Row Level SecurityAs regras que decidem quem pode ler o quê não estão no arquivo, e uma tabela recriada sem elas fica fechada para todo mundo ou aberta para todo mundo
As suas contas de loginElas ficam em um schema auth separado, que é o motivo de não estarem no Table Editor ao lado das suas tabelas
Tudo que os seus usuários enviaramO Supabase Storage vive fora do banco de dados, então nenhum export de nenhuma tabela jamais conteve um arquivo
As linhas atravessam. As ligações entre elas, as regras em cima delas e as pessoas que fazem login, não.

A última linha é a que pega as pessoas de surpresa. O seu banco de dados só guardou o caminho de cada arquivo enviado, então uma pasta de CSVs carregada em um projeto novo te dá uma tabela cheia de links para arquivos que não estão lá.

Isso não faz a rota do CSV não valer nada. Se o que te dá medo é um delete errado em uma tabela, um CSV daquela tabela é o que você quer, e devolver umas poucas centenas de linhas pelo mesmo editor é um trabalho que você faz sozinho. Reconstruir o projeto inteiro é que ele não consegue.

Já que você está olhando as suas tabelas: o nosso scan gratuito lê o seu site no ar por fora e diz quais delas respondem para um estranho. Leva uns 20 segundos e não precisa de conta: escaneie a sua app.

Um backup de verdade, sem abrir um terminal

Use um cliente de banco de dados de mesa. pgAdmin, TablePlus e DBeaver conectam todos em um projeto Supabase com uma string de conexão, e os três têm um comando de backup ou de dump parado em um menu. O que sai é um arquivo pg_dump completo, e você não digita comando nenhum para conseguir isso.

  1. No painel do Supabase, abra Connect e copie uma string de conexão. Se a direta se recusar a conectar, pegue a do session pooler, que é a que as próprias instruções de restauração do Supabase usam.
  2. Cole ela no cliente como conexão nova, junto com a senha do seu banco.
  3. Ache o comando de backup. No pgAdmin você clica com o botão direito no banco e escolhe Backup; no TablePlus e no DBeaver ele fica em um menu de export ou de dump.
  4. Salve o arquivo em algum lugar que não seja só o seu notebook.
As duas rotas pedem a mesma coisa ao Postgres e produzem o mesmo arquivo. Uma delas quer que você digite.

Esse arquivo leva o cômodo e as prateleiras: tabelas, colunas, tipos, índices, funções e as suas políticas de Row Level Security. Das rotas abertas para você no plano gratuito, é a única capaz de reconstruir o projeto em outro lugar, em outra conta, num dia em que você não consegue mais entrar nesta aqui. Ler ele de volta é um trabalho à parte, e como restaurar um backup do Supabase passa pelo que uma restauração substitui e pelo que ela deixa quebrado atrás de si.

Onde o arquivo fica, e de quanto em quanto tempo

Em algum lugar que não seja o mesmo notebook nem a mesma conta do Supabase. São duas falhas diferentes: o notebook cobre um disco que morre, a conta cobre um cartão que venceu enquanto você estava fora, um projeto suspenso, um login que ninguém recupera. Uma cópia dentro da conta está atrás da mesma porta da coisa que ela protegia, e é justamente isso que três jeitos de fazer backup de um banco Supabase compara rota por rota.

Sobre a frequência, pergunte quanto você aceitaria redigitar. Perder um dia de cadastros é chato, e uma cópia por noite cobre isso. Perder uma hora de pedidos significa devolver dinheiro para gente, e para isso uma por noite já é lento demais.

Depois carregue uma das suas cópias em um projeto Supabase descartável e abra a sua app em cima dele. É o único passo aqui que te diz se o arquivo presta, e custa mais ou menos meia hora.

Se você preferir não fazer isso na mão

Aí alguma coisa precisa tirar a cópia por você e conferir ela depois. É isso que o Reeve Care faz.

Uma cópia sai da sua conta do Supabase de forma programada, é lida de volta antes de contar, e faz o caminho inverso no dia em que você precisa.
  • Roda de forma programada, várias vezes por dia dependendo do plano, alguém lembrando disso ou não.
  • A cópia é criptografada e guardada fora da sua conta do Supabase, então perder a conta não leva os backups junto.
  • Cada cópia é lida de volta e contada contra o que entrou. A data que aparece no seu painel é a da última cópia que passou nessa conferência, nunca a da última tentativa.
  • Restaurar é um botão, e antes de começar ele tira um retrato do estado atual, então até a restauração tem o desfazer dela.
  • Os seus arquivos enviados também são copiados, assim que você conectar os seus buckets do Storage.

Deixe os backups do próprio Supabase ligados também, no dia em que você passar para um plano pago. Duas cópias em dois lugares é a ideia inteira. O que cada plano inclui está na tabela de preços do Care, e a cópia, a conferência e a restauração estão desenhadas passo a passo na página de backups do Supabase.

O que fazer esta semana

O que fazer

  • Confirme em que plano o seu projeto está. No gratuito nada está sendo copiado para você, e todo o resto daqui vem desse fato.
  • Exporte as suas tabelas para CSV hoje se tudo que você tem são dez minutos. Meia cópia ganha de nenhuma cópia.
  • Tire um dump completo por um cliente de mesa esta semana e ponha o arquivo em algum lugar que não seja o seu notebook.
  • Copie os seus arquivos do Storage à parte. Nenhum backup de banco de dados inclui eles, por rota nenhuma.
  • Carregue uma cópia em um projeto descartável, para que a primeira vez que você ler esse arquivo não seja o dia em que precisa dele.

Faça o export em CSV antes de fechar esta aba. É a menor coisa útil da lista e funciona no plano que você já tem. A checklist de segurança de 10 minutos cobre backups junto com o resto do que vale conferir em uma app recém-lançada.

Perguntas frequentes

Dá para baixar um backup pelo painel do Supabase no plano gratuito?

Não. A página de backups é um recurso pago, e no plano gratuito não há nada ali para baixar, porque nada foi guardado em momento algum. O que você pode baixar são os seus próprios dados: o Table Editor exporta qualquer tabela como arquivo CSV, e um cliente de banco de dados de mesa conectado ao seu projeto escreve um dump completo. As duas coisas são coisas que você faz, e não coisas que acontecem sozinhas.

Um export em CSV é um backup?

É meio backup. Um arquivo CSV guarda as linhas de uma tabela e nada sobre como aquela tabela foi construída, então o que dá para reconstruir com ele é uma planilha, e não um banco de dados. Ficam de fora as relações entre as tabelas, os tipos das colunas, as suas políticas de Row Level Security, as suas contas de login e todo arquivo que os seus usuários enviaram. Para devolver uma tabela que alguém esvaziou sem querer é exatamente o que você precisa. Para reconstruir um projeto não basta.

Como faço backup dos usuários de auth do Supabase?

As suas contas de login vivem em um schema de banco separado chamado auth, e é por isso que elas nunca aparecem no Table Editor ao lado das suas tabelas nem caem em um CSV delas. Um dump completo consegue levar esse schema junto. Colocar essas contas para funcionar de novo em outro projeto o Supabase documenta como um trabalho com passos próprios, e não como algo que viaja junto com as suas tabelas. Leia isso antes de precisar, e não durante.

Meu projeto está pausado. Ainda dá para tirar os meus dados?

Retome ele primeiro. O Supabase pausa projetos gratuitos depois de um período de pouca atividade, e um projeto pausado responde a cada requisição com um erro até você levantar ele de novo pelo painel. Uma pausa não é uma exclusão. Com o projeto rodando outra vez, as duas rotas deste artigo funcionam normalmente, e tirar uma cópia nessa hora é a coisa mais óbvia a fazer.

Não é melhor só assinar o Pro?

É o jeito mais barato de ter uma cópia diária automática, e vale a pena. Isso não substitui guardar uma cópia sua, porque as cópias que o Supabase tira ficam dentro da conta do Supabase. Elas cobrem o dia em que você quebra os seus próprios dados, e não o dia em que você perde o acesso à conta. Se a sua app tem clientes de verdade, a resposta costuma ser os dois.

Escrito por

Vlad Tkachenko

Fundador da Reeve

Passo meus dias olhando apps criados com Lovable, Bolt, v0, Cursor e Replit, e a curta lista de erros que aparecem neles sem parar.

Mais sobre o autor

Leia depois

Todos os artigos

Não sabe como está o seu próprio app?

Faça um scan gratuito e receba uma nota clara de A a F em cerca de 20 segundos. Sem conta e sem cartão.

Verificar meu app grátis

Verificação externa automatizada, não uma auditoria completa. A ausência de achados não é garantia de segurança.