Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

Duvida sobre Migrations

Pelo que entendi as migrations nos auxiliam na criação, alteração e remoção de tabelas. Então se estou criando um sistema do zero, o recomendado é usar migrations para criação de tabelas ou tanto faz eu criar e fazer toda a administração do banco via SQLServer por exemplo?

Sobre quando eu for rodar o comando 'php artisan migrate', ele irá rodar todos os arquivos migrations, certo? Então no exemplo de adicionar apenas um campo na tabela, como o exercicio propõe, adicionar o campo 'tamanho', eu crio a migration e rodo o comando 'php artisan migrate' e depois devo excluir o arquivo desta migration para assim ele nao ficar mais na fila caso rodar o comando 'php artisan migrate' novamente?

9 respostas

Boa noite Lucas,

As migrations permitem ter todo um histórico de mudanças no seu banco de dados além de facilitar o deploy da sua app Laravel também.

Porém, o desenvolvedor não é obrigado a utilizar, você as vezes pode ter um legado e deseja trabalhar com o banco de dados existente dele, mas ao utilizar migrations você além de ter as vantagens citadas, ainda de quebra estará seguindo as boas práticas com o framework.

Espero ter ajudado.

Abraços

Então o recomendado é sempre usar migrations para criação e manipulação do DB?

E sobre aquela outra questão que tenha duvidas ainda:

Sobre quando eu for rodar o comando 'php artisan migrate', ele irá rodar todos os arquivos migrations, certo? Então no exemplo de adicionar apenas um campo na tabela, como o exercicio propõe, adicionar o campo 'tamanho', eu crio a migration e rodo o comando 'php artisan migrate' e depois devo excluir o arquivo desta migration para assim ele nao ficar mais na fila caso rodar o comando 'php artisan migrate' novamente?

Sim, é o recomendado se estiver iniciando com a modelagem do banco no seu projeto.

Você não deve excluir o arquivo, o histórico das migrations servirá por exemplo se você estiver trabalhando com outro desenvolvedor e ele também vai rodar o php artisan migrate, imagina se você cria o novo campo exclui e depois ele roda o comando, ele fica com uma versão diferente da sua no banco de dados.

Entendo, mas por exemplo, se eu crio uma migrations para alterar uma tabela e rodo ela e executa com sucesso. Se caso eu criar uma outra migration e roda o comando novamente, a primeira migration nao será rodado de novo?

Bom dia Lucas,

Desculpe a demora.

Cara eu quando altero algo no banco, particularmente, gosto de rodar novamente o migrate para tudo, principalmente se envolve foreign key (estou dando um exemplo de cenário). Mas você pode rodar uma migration separada também, eu não gosto dessa abordagem mas é possível.

Eu prefiro rodar tudo porque geralmente crio dados fake para testes então é só rodar o migrate novamente e depois os seeders e está tudo certo.

Espero ter ajudado.

Abraços

solução!

Fala, Lucas. Beleza?

Quando você dá o comando php artisan migrate somente as migrations que ainda não foram executadas serão invocadas, ou seja, não precisa se preocupar em excluir as migrations já rodadas. Pelo contrário, essa é uma das principais vantagens de migrations. Manter o histórico. Se você conferir no seu banco de dados, provavelmente vai encontrar lá uma tabela que armazena as migrations que já foram executadas.

Espero ter ajudado. Abraços!

Agora ficou bem claro para mim.

Muito obrigado por tirar minhas dúvidas galera.

Valeu Lucas, espero ter ajudado em algo também!

Bons códigos ai!

Abraços

Ajudou com certeza Estevam, muito obrigado.

Abraços.