Saindo do Zero · Módulo 11

Dados e persistência — backup testado, migração, ambientes

O banco de dados guarda o que sua empresa não pode perder — e a única forma de confiar nisso é testar como se recupera dele.
  • Backup testado
  • Migração
  • Ambientes
00 — BACKUP TESTADO

Um backup que nunca foi restaurado é uma suposição, não uma garantia

O banco de dados, visto no Módulo 6, guarda tudo que sobrevive ao reinício de um sistema — cadastro de usuário, histórico de compra, progresso de um curso. Um backupé uma cópia desses dados guardada em outro lugar, pra caso o banco original seja corrompido, apagado por engano ou perdido numa falha de servidor. Mas existe uma diferença enorme entre "ter um backup" e ter um backup testado: só descobrir se a cópia funciona no momento de uma emergência real é a pior hora possível pra descobrir que ela estava corrompida, incompleta ou desatualizada.

backup testado = a rede pega de verdaderestaurar é o que prova que o backup funciona
Metáfora: um extintor de incêndio guardado há anos sem nunca ter sido verificado pode estar vazio. Ele só cumpre a função de extintor se alguém checar, de tempos em tempos, que ele ainda dispara quando necessário — o mesmo vale pra um backup: ele só é uma garantia real depois que alguém já restaurou dados a partir dele com sucesso, ao menos uma vez.
Situação realHoje, na VPS do Eduardo, não existe um backup automático configurado pros bancos dos projetos (Enf Pró Cards, SongPlay, Flux) — é exatamente o tipo de lacuna que este módulo ajuda a enxergar, não algo hipotético.
reconhecer 1 — backup testadopendente

Por que um backup que nunca foi restaurado não é uma garantia real?

APorque só o ato de restaurar prova que a cópia realmente funciona e está completa
BPorque todo backup perde qualidade com o tempo, mesmo sem ser tocado
CPorque backups automáticos nunca funcionam de verdade
01 — MIGRAÇÃO

Mudar a estrutura do banco sem apagar o que já existe

Uma migração é uma mudança controlada na estrutura do banco de dados — adicionar uma coluna nova, renomear um campo, criar uma tabela — feita de um jeito que preserva os dados que já estavam lá. Diferente de simplesmente editar o banco na mão, uma migração é um passo a passo registrado (geralmente um arquivo de código), que pode ser aplicado em qualquer cópia do banco na mesma ordem, de forma previsível.

nomeemailantesnomeemailteldepoismigração muda a estrutura sem apagar o que já existia
Metáfora: é como reformar uma casa com os móveis ainda dentro — dá pra construir um cômodo novo sem jogar fora o que já estava lá dentro, desde que a reforma seja feita com cuidado e na ordem certa.
No seu projetoO Enf Pró Cards usa Drizzle e o SongPlay usa Prisma (vistos no Módulo 6) — os dois são ORMs que também geram e aplicam arquivos de migração, então toda vez que uma tabela nova é criada nesses projetos, já existe uma migração registrada por trás.
reconhecer 2 — migraçãopendente

O que diferencia uma migração de simplesmente editar o banco de dados na mão?

AA migração é sempre mais rápida de aplicar
BA migração é um passo a passo registrado, aplicável na mesma ordem em qualquer cópia do banco, preservando os dados existentes
CA migração elimina a necessidade de backup
02 — AMBIENTES

Testar mudanças num lugar que não é onde o usuário real está

Um ambiente é uma cópia isolada do sistema, usada pra um propósito específico. O ambiente de desenvolvimento roda na máquina de quem está construindo, e pode quebrar sem problema. O de produção é o que o usuário real usa — visto desde o Módulo 3, é ele que fica atrás do domínio, servido pelo Nginx e mantido no ar pelo PM2. Entre os dois, muitos times usam um ambiente de staging: uma cópia o mais parecida possível da produção, pra testar mudanças arriscadas (como uma migração) antes delas chegarem no usuário de verdade.

dev — sua máquina, pode quebrar à vontadestaging — cópia próxima da produção, pra testar antesprodução — o que o usuário real usa
Metáfora: é a diferença entre ensaiar uma peça de teatro no camarim, fazer um ensaio geral com o cenário montado, e a estreia com plateia pagante — cada etapa existe pra pegar erro antes da etapa mais cara de corrigir.
Por que isso importaAo pedir uma mudança arriscada pra IA (como uma migração de banco), a pergunta certa é "isso já foi testado num ambiente que não é a produção?" — antes de rodar o comando na base de dados real que atende usuários.
reconhecer 3 — ambientespendente

Qual é a principal função de um ambiente de staging?

ASubstituir a necessidade de testes automatizados
BSer o ambiente que o usuário final acessa no dia a dia
CTestar mudanças arriscadas numa cópia parecida com a produção, antes delas chegarem no usuário real

desafio final do módulo 11: Você precisa adicionar um campo novo numa tabela que já tem milhares de registros reais em produção, e não existe backup testado configurado ainda. Qual é a sequência mais coerente com os conceitos deste módulo?

desafio finalpendente

Escolha a alternativa mais coerente com os conceitos deste módulo.

AConfigurar e testar um backup primeiro, escrever a migração, testar num ambiente separado, e só então aplicar em produção
BEditar a tabela direto em produção, já que adicionar um campo é uma mudança simples
CPular o backup, porque migrações nunca dão errado