UpInside Treinamentos

Versione seu banco de dados junto a aplicação para ter um backup full

Faça um dump do seu banco de dados e armazene junto com a sua sua tag de versão. Assim você tem a garantia de ter uma cópia fiel da sua aplicação.

Versione seu banco de dados junto a aplicação para ter um backup full
  • Compartilhe esse post
  • Compartilhar no Facebook00
  • Compartilhar no Google Plus00
  • Compartilhar no Twitter

Salve salve moquerido, Gustavo Web aqui e vamos mesclar um pouco os que a gente vem vendo nos últimos artigos?

Se você acompanha o nosso blog aqui na up, você já reparou que meus últimos artigos são relacionados a banco de dados e sobre versionamento! E então eu resolvi escrever esse artigo para vocês para que sirva como mais um item no seu checklist quando estiver versionando o seu projeto...

...o Robson já executa isso desde as primeiras versões do WorkControl®, mas eu acredito que acaba passando despercebido por você quando está no hardwork ai!

O nome dessa task que você precisa adicionar ai é: Dump Version.

Ou seja, quando você commitar a última versão do seu projeto antes de dar um nome para ela (v1.0, v.1.0.0...) lembre-se de adicionar também um arquivo somente com o schema (estrutura) do seu banco de dados. Assim, quando você estiver lá na versão X e precisar recuperar uma versão da sua aplicação você terá o banco junto... Sabemos que alteramos o banco de dados o tempo todo, e da versão 1 para a versão 10 deve-se ter inúmeras alterações dentro do seu BD e caso não faça esse procedimento por mais que você tenha todos os arquivos intactos; não ter o banco de dados o original da versão pode ser motivo de muita dor de cabeça.

Eu não sei qual o ambiente que você está usando ai, mas praticamente que qualquer aplicativo de SGDB tem a opção de exportar o banco completo com a opção de "Somente estrutura/Only Scheme".

Exporte um dump scheme do seu banco

O procedimento é bem simples, e você pode fazer até pelo PhpMyAdmin... Só seguir esse passo a passo:

Acesse o seu phpmyadmin, no meu caso como estou em localhost, eu faço o acesso por https://localhost/phpmyadmin mas você pode acessar também diretamente pelo seu cPanel. Logo depois acesse o banco de dados que deseja efetuar o backup:

Versione seu banco de dados junto a aplicação para ter um backup full

Logado dentro do banco, acessa o menu Exportar:

Versione seu banco de dados junto a aplicação para ter um backup full

E agora que vem a parte de personalização, para gerar o dump você deve fazer algumas parametrizações a mais... Esse dump que você vai gerar, não necessariamente tem que vir com o conteúdo do banco, até porque isso deixaria o arquivo gigante... Você pode então selecionar o método personalizado de exportação e na box que abrir abaixo, desmarca a caixa de dados. Assim, somente a estrutura do seu banco será exportada num arquivo.

Versione seu banco de dados junto a aplicação para ter um backup full

Feito isso, clique em Executar no final da página e será gerado um novo arquivo. Ele pode ficar na sua pasta de transferência ou no seu desktop dependendo do navegador e versão do sistema operacional. Localizando esse arquivo, basta copiar ele para a pasta do seu projeto e você pode deixar na raiz ou criar uma pasta com um nome específico para esse fim (tipo _DBSA) e commitar a sua versão.

A UP também funciona assim

Para você ver que aqui dentro da UP a gente usa de fato isso... Dá uma olhada no repositório do WorkControl® :)

Versione seu banco de dados junto a aplicação para ter um backup full

Versione seu banco de dados junto a aplicação para ter um backup full

Bom galera, hoje eu trouxe essa dica para vocês que é extremamente básica... Mas fica sem executar esse procedimento uma vez, e dependa de recuperar uma versão antiga da sua aplicação web! Tenho certeza, que vai concordar comigo que isso tem que estar no checklist :)

Me diga aqui abaixo o que você achou dessa ideia, se você já versiona seus códigos da aplicação... E não esquece, você também pode solicitar o assunto do meu próximo artigo! Se você tem alguma dúvida ou quer saber mais sobre algo, só me avisar :)

  • Compartilhe esse post
  • Compartilhar no Facebook00
  • Compartilhar no Google Plus00
  • Compartilhar no Twitter

Olá, deixe seu comentário para Versione seu banco de dados junto a aplicação para ter um backup full

Já temos 9 comentário(s). DEIXE O SEU :)
Andre Luiz

Andre Luiz

ajuda demais. parabéns !
★★★★★DIA 20.05.17 20h17RESPONDER
Gustavo Web
Enviando Comentário Fechar :/
Jonathan jonatha_marcel@hotmail.com

Jonathan [email protected]

Gostei do artigo, show.
Uma dúvida, algum problema da estrutura do banco ficar junto com o site no server?
Pode facilitar o entendimento da estrutura do banco ou algo assim.

Espero que não seja uma pergunta muito idiota.
★★★★★DIA 17.05.17 16h11RESPONDER
Gustavo Web
Enviando Comentário Fechar :/
Gustavo Web

Gustavo Web

De forma alguma eu recomendo essa prática... Afinal você estará com a estrutura do seu banco de dados exposta na internet! O Google pode inclusive indexar o seu arquivo de dump e isso acabar ficando numa pesquisa pública. Trabalhar com o dump somente no localhost ou no repositório remoto afim de fazer backup, mas jamais deve estar no seu servidor ftp :)

★★★★★DIA 18.05.17 09h57RESPONDER
N/A
Enviando Comentário Fechar :/
Warlisson Miranda

Warlisson Miranda

Olá Gustavo, primeiramente parabéns pelo artigo.

No que tange a backup, eu não faço assim. Criei uma forma que de tempo em tempo eu recebo um backup do banco por email e salvo no drive.

Na verdade, foi uma classe e um CRON que envia em uma data pré-estabelecida.

Mas de qualquer forma, a dica é muito boa!
★★★★★DIA 16.05.17 20h37RESPONDER
Gustavo Web
Enviando Comentário Fechar :/
Gustavo Web

Gustavo Web

Siiiim, esse formato também é bem bom de se trabalhar! Mas no caso você tem o seu projeto rodando e faz o backup com uma certa periodicidade certo? Aqui no caso, é quando trabalhamos com o WorkControl e liberamos versão 1.0, 1.1, 2.0, 3.1.... Enfim! Por mais que eu tivesse uma cron e me salvasse esse campo sempre e eu tivesse isso no drive, dropbox ou até mesmo numa pasta do meu ftp, seria difícil encontrar qual a versão do banco de dados compatível com aquele commit :)


No entanto, que nesse caso a gente cria um dump somente da estrutura! (para ser versionado)


Na cron, o dump é completo e feito no geral 1x por dia! :)


Mas é uma boa ideia isso que você falou! Vou ver se preparo algo abordando essa forma!

★★★★★DIA 17.05.17 11h18RESPONDER
N/A
Enviando Comentário Fechar :/
Warlisson Miranda

Warlisson Miranda

Opa Gustavo,
é muito bom essa forma que trabalho, pois quando vou salvar coloco como ANO-MES-DIA, ou seja, fica salvo assim 2017-05-17.sql ou dependendo da situação, 20170517.sql, pois assim consigo ver qual foi o último backup.

Além disso, é possível criar uma pasta somente para este quesito. Não sei como funciona o Work Control, mas é interessante acrescentar essa função nele, tipo em uma configuração.

Já tive problemas com banco de dados e essa foi uma solução. Minha sorte é que salvei com os dados juntos. :)

De qualquer forma, as dicas do artigo são excelentes e contribui muito para ter uma segurança maior.

Abraços.
★★★★★DIA 17.05.17 12h26RESPONDER
N/A
Enviando Comentário Fechar :/
Gustavo Web

Gustavo Web

O Work Control no caso a gente disponibiliza a ferramenta para os alunos somente com a estrutura! Os dados, cada aluno tem o seu... Nos preocupamos somente com a ferramenta e não com as informações contidas. E por mais que a gente salve o arquivo com ano-mes-dia, saber qual foi o banco de dados da versão 1.9.5 do meu projeto seria complicado... Claro que temos algumas formas de contornar isso como adicionar o numero da versão no nome do arquivo hehe!


Mas bacana esse formato também! Se trabalhar com os dois então, fica chic show :)

★★★★★DIA 17.05.17 14h10RESPONDER
N/A
Enviando Comentário Fechar :/
Carlos Alberto camargo da silva

Carlos Alberto camargo da silva

Excelente dica, que bom que recebi ela antes de passar pela situação de ter que restaurar um projeto.
A cada dia que passa, com os ensinamentos da Upinside, fico mais tranquilo e confiante no trabalho que estou executando.
Obrigado!
★★★★★DIA 16.05.17 09h30RESPONDER
Gustavo Web
Enviando Comentário Fechar :/
Gustavo Web

Gustavo Web

Shooow de bola Camargo Pro... É um processo um tanto quanto intuitivo depois que está no nosso radar, mas que se não for feito vai dá um baita problema.

★★★★★DIA 16.05.17 11h25RESPONDER
Carlos Alberto camargo da silva
Enviando Comentário Fechar :/
Enviando Comentário Fechar :/