DEV Community

Cover image for Crie seu próprio sistema de migrations em PHP! Parte 1
Tadeu Barbosa
Tadeu Barbosa

Posted on

Crie seu próprio sistema de migrations em PHP! Parte 1

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.

Magic!

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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

Top comments (0)