Módulo 2 — Base de dados e backend 🟢

Objectivo: dar dados, contas e ficheiros a uma aplicação — com Supabase. O momento aha: em minutos tens uma base de dados Postgres + autenticação a correr na tua máquina. Resultado: base local a correr e uma tabela com dados reais.


1. O que é o Supabase

Uma plataforma que junta numa só:

  • Postgres — a base de dados (tabelas, relações).
  • Auth — registo e login de utilizadores.
  • Storage — guardar ficheiros (imagens, PDFs).
  • API automática — cada tabela ganha logo uma API REST.

2. Local primeiro (CLI)

npx supabase init        # cria a pasta supabase/ no projecto
npx supabase start       # levanta a base de dados local (Docker)
npx supabase status      # mostra os URLs e chaves locais

Trabalhar local é grátis, rápido e seguro — só mexes na nuvem quando estiver pronto.

3. Migrações — alterações versionadas à BD

Uma migração é um ficheiro SQL com uma mudança de estrutura:

-- supabase/migrations/0001_clientes.sql
create table clientes (
  id uuid primary key default gen_random_uuid(),
  nome text not null,
  nif text not null,
  criado_em timestamptz default now()
);
npx supabase db push     # aplica as migrações

4. Chaves: o que é seguro

  • anon key — pública, usada no frontend (só faz o que as regras permitem).
  • service_rolesecreta, só no servidor. Nunca no navegador.

🔴 Fora do VSCode

O Studio (visual) serve para ver/editar dados à mão e certas configurações do projecto na nuvem.


✅ Exercícios

  1. Arrancanpx supabase init + start num projecto e abre o Studio local.
  2. Tabela — escreve uma migração que cria a tabela clientes (nome + NIF) e aplica-a.
  3. Dados — insere 2 clientes e lista-os (pela API REST ou pelo Studio).

Resultado esperado: supabase status mostra os serviços a correr e a tabela clientes tem dados.


⚠️ Erros comuns

  • Expor a service_role no frontend — nunca. Só a anon key vai para o navegador.
  • Mudar tabelas à mão no Studio sem migração — perde-se o histórico. Usa migrações.
  • Esquecer as regras de acesso (RLS) — sem elas, ou está tudo aberto ou tudo fechado.
  • Trabalhar direto na nuvem — desenvolve local primeiro (npx supabase start).

📋 Checklist do módulo

  • Supabase local a correr (supabase status)
  • Tabela clientes criada por migração
  • 2 registos inseridos e listados
  • service_role só no servidor
🧠 Quiz — testa o que aprendeste

1 A chave que NUNCA vai para o frontend é…

2 Para mudar a estrutura da BD de forma versionada usas…

Material de formação · Desenvolvido por DCSC Tecnologias