Crie seu próprio sistema de migrations em PHP! Parte 1
Tadeu Barbosa
Posted on July 21, 2020
Ao som de Elvis Presley — Baby, what you want me to do. gostaria de compartilhar com vocês uma experiência recente que tive.
Para os que programam em PHP, muito dificilmente não conhecem o Framework Laravel. É um dos mais conhecidos, senão usados atualmente. E a algum tempo atrás quando me aventurei a aprender o Laravel já na sua versão 4, me deparei com uma ferramenta incrível: As migrations ❤!
O que são e como funcionam as migrations
Digamos que o sistema de migrations é um sistema criado para auxiliar os desenvolvedores a migrarem seus bancos de dados, contribuir com o desenvolvimento e a parte de infra de um projeto. Deixe que eu demonstre melhor. Digamos que comecei a desenvolver meu site e que possuo uma tabela chamada usuarios e que esta tabela possui os campos: id, primeiro_nome, email e senha. Uma estrutura mais simples impossível!
Ok! A nossa tabela está rodando em produção, em 10 sites diferentes, e cada um possui em média 1.000 clientes cadastrados. Porém, ai vem o problema, o chefe nos chama no escritório e diz que precisa agora capturar também o telefone dos clientes. E, além do mais, que ao invés de ser capturado somente o primeiro nome seja capturado o nome completo. Bem, você poderia simplesmente ir a cada um dos bancos e alterar manualmente cada uma das tabelas.
A magia das migrations
Se fosse só isso, ter todo esse trabalho para alterar as tabelas, não seria necessário escrever esta publicação. Bastaria que fizéssemos as alterações e tudo ótimo. Mas esse não é o nosso objetivo. O nosso objetivo é conseguir entregar um trabalho bem feito, utilizando os recursos que estão ao nosso alcance.
Suponhamos que ao invés de alterar banco por banco, tabela por tabela, você decida aprender a utilizar as migrations e poupar tempo e trabalho desnecessário. Mais a cima eu citei o Laravel, mas não é exclusividade do mesmo. As migrations estão presente em diversas aplicações. Um exemplo seria o Adonis JS, uma aplicação em NodeJs gostosinha de mexer.
Bem, chega de enrolação. Você cria uma migration, no caso do Laravel:
php artisan make:migration add_columns_to_usuarios
E dentro do arquivo cria todo o conteúdo responsável por alterar e criar as colunas. No fim, basta rodar no servidor de produção:
php artisan migrate
E o Laravel fará todo o trabalho por você! ;D Molezinha, não?!
Uma semana depois volta seu chefe e diz que recalcularam e realmente só precisam capturar o primeiro nome e não precisam mais do telefone. Maravilha! Com as migrations você só precisa rodar o seguinte comando para desfazer as últimas alterações na estrutura do banco:
php artisan migrate:rollback --step=1
Tudo muito bem, tudo muito bom, mas e se eu não tiver utilizando o Laravel, ou o Adonis…? Bem, você vai precisar baixar uma biblioteca ou criar um próprio sistema caso não ache uma para a sua linguagem (o que acho difícil).
Para o PHP, por exemplo, me deparei com o phinx do CakePHP, ou essa PHPDbMigration. Todas as duas disponíveis no Github ;)
Esse post vai ficar muito longo para explicar como criar o seu próprio sistema em PHP, mas vou continuar no próximo.
Acompanhe!
Imagem: fotografielink pixabay
Posted on July 21, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.