0Pricing
Helm Academy · Aula

Um Job de migração de DB pre-upgrade

Anote um Job para executá-lo antes da implantação.

Um Job de migração de DB pre-upgrade é uma aula grátis de Helm Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Helm Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Helm Academy inclui 4 aulas no total.

Um caso de uso real

Antes de o novo código do aplicativo ser implantado, geralmente é necessário migrar o esquema do banco de dados. Um hook pre-upgrade é o local perfeito para executar essa migração com segurança.

Por que antes da implantação

Executá-la como pre-upgrade significa que o esquema estará pronto antes de os novos pods iniciarem. O código novo nunca falará com um banco de dados antigo e incompatível.

"helm.sh/hook": pre-upgrade

Comece com um Job

A migração é executada uma vez e depois termina, então modele-a como um Job do Kubernetes. O Helm aguardará a conclusão do Job antes de continuar a atualização.

apiVersion: batch/v1
kind: Job
metadata:
  name: db-migrate

Adicione a anotação do hook

Marque o Job como um hook nos metadados. A anotação helm.sh/hook definida como pre-upgrade é o que transforma esse Job comum em um hook.

metadata:
  annotations:
    "helm.sh/hook": pre-upgrade

Execute o comando de migração

O contêiner do Job executa sua ferramenta de migração. Aponte-o para o mesmo banco de dados usado pelo aplicativo, para que as alterações do esquema sejam aplicadas no local correto.

spec:
  containers:
    - name: migrate
      image: myapp:1.4
      command: ["./migrate", "up"]

Nunca reinicie em caso de falha

Defina a restartPolicy do Job como Never ou OnFailure. Uma migração que fique em um loop infinito bloquearia sua atualização e impediria o Helm de prosseguir.

spec:
  template:
    spec:
      restartPolicy: Never

Use um template para a tag da imagem

Mantenha o migrador sincronizado com o aplicativo usando um template para a tag. Reutilize o mesmo .Values.image.tag lido pelo deployment, para que as versões correspondam.

image: "myapp:{{ .Values.image.tag }}"

O Helm bloqueia até a conclusão

Por ser um hook pre-upgrade, o Helm pausa a atualização até que o Job informe sucesso. Se a migração falhar, a implantação nunca ocorrerá. 🛑

Faça a limpeza após o sucesso

Caso contrário, Jobs de migração antigos se acumulam. Combine o hook com uma hook-delete-policy para que um Job bem-sucedido seja removido, em vez de poluir o namespace.

"helm.sh/hook-delete-policy": hook-succeeded

Nomes exclusivos ajudam

Os Jobs de hooks são imutáveis depois de criados, portanto um nome fixo pode colidir na próxima atualização. Incluir .Release.Revision no nome mantém cada execução distinta.

name: db-migrate-{{ .Release.Revision }}

Teste com uma simulação

Antes de uma atualização real, renderize o chart para confirmar que o hook está correto. Uma dry-run mostra o manifesto do Job que o Helm criaria sem tocar no cluster.

helm upgrade myapp ./mychart --dry-run

Verificação rápida

Você precisa executar uma migração de esquema antes que os novos pods do aplicativo iniciem durante uma atualização.

Recapitulação

Você modelou uma migração como um Job pre-upgrade, definiu restartPolicy como Never e fez o Helm bloquear até o sucesso antes de implantar o código novo. 🗄️

Perguntas Frequentes

A aula “Um Job de migração de DB pre-upgrade” é grátis?

Sim — o texto completo de “Um Job de migração de DB pre-upgrade” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Helm Academy, atualize para CoddyKit PRO. O curso de Helm Academy inclui 4 aulas no total.

O que vou aprender em “Um Job de migração de DB pre-upgrade”?

Anote um Job para executá-lo antes da implantação. Você pratica Helm Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Helm Academy?

Nenhuma experiência prévia é necessária. Helm Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Um Job de migração de DB pre-upgrade”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Helm Academy?

Sim. Cada aula de Helm Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O que são hooks e quando são executados
  2. Um Job de migração de DB pre-upgrade
  3. Pesos e ordenação de hooks
  4. Políticas de exclusão de hooks
← Voltar para Helm Academy