anúncios

segunda-feira, 23 de outubro de 2017

A importância de usar migrations/seeds no projeto de sistema web

Vocês utilizam migrations nas tabelas do sistema?

Não? Então precisar ler o howto [1] seguinte sobre migrations com Phinx para automatizar e versionar as tabelas do sistema. Os frameworks PHP tradicionais já inclui migrations, mas pode ser que esteja em um sistema já construído que não foi pensado em migrations, imagina como é quando necessita fazer uma alteração de uma estrutura nas tabelas específica e/ou criar um tabela, enviar ALTER TABLE tabela ADD campo tipo AFTER campo; e/ou CREATE TABLE table tabela ... para todos né. Depois no deploy precisa lembrar qual foi a ordem que executou para poder executar no BD de produção.

Com migrations com Phinx, isso é mais prático e versionado, pois com um comando atualiza o BD de desenvolvimento, homologação e produção, bastando alterar o argumento especificando qual BD deseja aplicar.

Então, como aplicar o uso do migrations com Phinx na equipe de desenvolvimento? Cria um repositório a parte no Github ou Bitbucket com nome migrations. Os integrantes do time fazem fork, o clone do seu fork, adiciona o remote oficial do migrations.

1. fork do repositório migrations criado no Github ou Bitbucket
2. git clone < url repositório migrations do fork >
3. git remote add upstream < url repositório oficial migrations >
4. composer install (obviamente irá colocar o diretório vendor do projeto migrations no arquivo .gitignore, então por isso terá que executar o passo 4

Assim para cada alteração na estrutura da tabela ou criar uma tabela, cria um migrations, executa e faz o commit no seu fork e o pull request no oficial. Provavelmente no time de desenvolvimento deve ter um grupo no Slack com canais direcionados sobre o projeto, deve ter um #canal banco de dados, então nesse canal comunica para atualizar com os seguintes comandos abaixo.

O Phinx também permite popular dados na tabela, que é chamado de seed, na qual é utilizado para popular as tabelas que tem dados fixos no sistema, e.g: estados, cidades, CNAES e etc.

cd /path/diretorio/onde/salvou/clone-migrations;
git pull upstream master;
git push origin master;
vendor/bin/phinx migrate

Caso tiver seed execute
vendor/bin/phinx seed:run

Viu como fica mais organizado, automatizado e versionado usando migrations/seeds com Phinx no sistema web com PHP? Com certeza, vale a pena utilizar o migrations/seeds com Phinx no sistema web com PHP.
Ok, como usar o migrations/seeds com Phinx?
Acesse o howto [1] e tenha a certeza que se perguntará, por que não pensei nisso antes? Logo vai começar a utilizar o migrations e seeds com Phinx.

[1] https://mundodacomputacaointegral.blogspot.com.br/2017/09/automatizando-e-versionalizando-tabelas-bd-com-phinx.html

Feito!

Nenhum comentário:

Postar um comentário