PHP — Migration no Laravel 5.3

Victor Hugo Rocha
3 min readSep 14, 2016

--

Olá, devZ.

Por que já começar em Migration, Victor?

Porque criar um projeto em Laravel é ridículo, o tempo que eu estou escrevendo esse primeiro parágrafo o composer já fez tudo acontecer e você está vendo aquelas bela fonte que o Laravel possui após a criação de um novo projeto.

Você é muito chato, Victor.

Tela após a criação com sucesso de um projeto no Laravel 5.3

Se você ainda está lendo imagino que você saiba o que é o composer, se você não sabe, well, ele é um gerenciador de dependências do PHP. Nós precisamos dele, é com ele que vamos iniciar a nossa aplicação. Depois de você ter ele instalado, abra o terminal e comece.

composer install laravel/laravel app 5.3.*

Onde app é o nome da sua aplicação e 5.3.* é a versão do Laravel, você ainda pode instalar as versões anteriores (5.2, 5.0, 4.2, …) alterando o comando. Você também pode fazer a instalação global com o composer usando:

composer global require “laravel/installer”Laravel new app

Após a instalação global o comando Laravel vai estar habilitado e você pode criar projetos usando o comando acima. há também outros comandos para colocar no instalação como — prefer-source ou — prefer-dist, mas fica para a próxima essa explicação.

Ok, migrations. Migrations são como um controle de versão do seu banco de dados. Beleza, e dai, né? Então, é difícil explicar mas isso é muito bom porque você pode manipular completamente o seu banco com muita facilidade enquanto ele estiver em desenvolvimento. Vamos utilizar o artisan para isso.

php artisan make:migration create_users_table

Onde users é um exemplo que deve estar em plural. Por que? É uma recomendação do Laravel que as suas migrations estejam no plural e as models no singular. Tá, por que? Porque quando você criar uma Model User ele vai automaticamente fazer a relação entre a Model User e a tabela users.

Eu nem sei o que é Model, Victor.

No futuro você vai saber, com certeza. Por enquanto eu vou te dizer como você cria uma e acredita em mim, elas vão ser muito importantes.

php artisan make:model User

Percebeu o padrão? Se você digitar somente php artisan no terminal você vai poder ver um monte de outros comandos que você pode usar que facilitam a sua vida. Hoje eu aprendi uma dessas facilidades e vou ensinar pra vocês aqui.

php artisan make:model User -m

Com esse comando você cria a Model e a migrate com um comando só. Não é como se fosse muito trabalho antes mas cada tempo não desperdiçado quando você quer aumentar a sua produtividade é válido, e aumentar a produtividade é uma das coisas que o Laravel faz com excelência.

Depois de editar suas migrations (Users, Products, Clients, Jobs,…) com quais dados você quer nela. (id, name, description, price, cpf, …) e quais são os tipos desses dados no banco… Pera, melhor eu mostrar pra vocês como é uma migration.

Por exemplo, a tabela cpf será unique (único) e terá no máximo 11 dígitos. Já a tabela birthdate é nullable, o que significa que ela pode estar vazia, ou seja, o cliente dessa aplicação pode não informar essa data.

E o que é esse timestamps e SoftDeletes, Victor?

O timestamps cria duas colunas no banco: create_at e update_at, assim podemos pegar o dia em que um usuário foi cadastrado e quando ele fez alguma atualização no seu perfil, por exemplo. O SoftDeletes cria uma colunadelete_at, com ela ao invés de apagarmos um registro no banco quando um usuário deleta sua conta ele altera o status dessa linha do usuário, mostrando que ele foi deletado sem apagar o seu registro.

Por que isso é bom, Victor?

Alerta de minha opinião: Nunca é uma má ideia evitar a perda de dados. Mas essa discussão poderia render(e rende) muitas discussões e você pode ler um pouco sobre isso no Stackoverflow.

--

--