Problema
Adicionar novas colunas às suas migrações de Laravel é uma coisa comum. Os aplicativos devem ser escaláveis, o que significa que a adição de novos recursos desenvolve mais seu aplicativo.
Muitas vezes, novos desenvolvedores de Laravel precisam executar suas migrações, mas não garantem que as migrações possam reverter e migrar várias vezes sem quebrar nada.
Embora esse não seja o nosso foco, acho importante afirmar que antes de entrarmos em nosso problema.
A seguir, é apresentado um problema comum que os novos desenvolvedores de Laravel tentarão fazer quando quiserem adicionar uma nova coluna a uma tabela existente.
Então, neste momento, eles já fizeram algo como:
função pública up ()Isso criará uma nova tabela para eles. E para limpar isso, você também deve adicionar a função para baixo e simplesmente soltar toda a sua tabela neste caso. A função Down será executada quando você quiser reverter sua migração.
Pulando por tudo isso, o verdadeiro problema aparece quando eles esquecem uma coluna e querem adicionar isso depois para criar um novo arquivo de migração (classe), tente executar algo como:
função pública up ()Eles esperam adicionar um novo tamanho de coluna à tabela existente.
Agora vamos ver o que acontece e como impedir que isso aconteça novamente.
Solução
O principal problema aqui é o que os novos desenvolvedores geralmente tendem a sentir falta de perceber qual é o nome do método estático do esquema . Você só usa Criar quando está criando inicialmente sua tabela. Se você precisar atualizar ainda mais sua mesa a qualquer momento, você deseja usar a tabela.
Portanto, a função real deve ser assim:
função pública up ()E a função down seria assim:
função pública para baixo ()Minha sugestão pessoal para você é que, depois de criar seu novo arquivo de migração (alterando), faça o seguinte:
n
Outra dica
Isso será útil posteriormente se você quiser automatizar sua implantação e seu script precisa executar uma reversão.
Outra dica que posso dar é planejar onde você deseja colocar sua coluna. Apenas fazendo isso, o Laravel colocará sua nova coluna no final, provavelmente após a coluna Updated_at. (A maioria das tabelas tem isso)
Você deseja usar um método depois, para que seu código final fique assim:
função pública up ()Nesse caso, o Laravel colocará sua nova coluna logo após a coluna do nome, para que pareça agradável e seja organizada muito melhor.