🚀 Capítulo 16: Projetando o Banco de Dados (Tema: O Arquiteto / Matrix)
NOTE
Este capítulo utiliza a temática de O Arquiteto (criador da Matrix) para explicar as Migrations no Laravel. Aprenda a versionar o seu banco de dados sem digitar código SQL!
1. 🎯 Objetivo da Aula
Compreender o conceito de Migrations no Laravel, aprendendo como criar e alterar tabelas no banco de dados usando código PHP, funcionando como um controle de versão para o banco.
2. 🏢 O Cenário Prático (Seu Desafio)
O Arquiteto é o programa responsável por projetar a estrutura de toda a Matrix. Ele decide onde ficam os prédios, as ruas e como as pessoas são cadastradas no sistema. Se ele precisar adicionar uma nova cidade ou mudar a cor do céu, ele não reconstrói tudo do zero; ele aplica uma atualização na estrutura existente!
No desenvolvimento em equipe, mexer no banco de dados costuma ser um problema. Se você adicionar uma coluna nova na tabela do seu computador, como os outros programadores da equipe vão saber disso?
- O Laravel resolve isso com as Migrations. Elas são arquivos de código que dizem exatamente como criar ou alterar as tabelas. Quando você manda rodar as migrations, o Laravel cria tudo no banco sozinho! Seu desafio é projetar essa estrutura!
🧠 Fundamentos: A Teoria Traduzida
🗺️ 1. O que é uma Migration?
É um arquivo PHP que contém duas funções principais:
up(): O que fazer quando a migration for executada (ex: criar a tabela).down(): O que fazer se eu quiser desfazer a migration (ex: apagar a tabela).
⌨️ 2. Criando uma Migration:
No terminal do projeto Laravel, você digita um comando para gerar o arquivo:
php artisan make:migration create_usuarios_table🏗️ 3. Desenhando a Tabela:
Dentro do arquivo gerado, você usa métodos do Laravel para dizer quais colunas a tabela terá:
class CreateUsuariosTable {
public function up()
{
Schema::create('usuarios', function (Blueprint $table) {
$table->id(); // Cria coluna ID auto-incremento
$table->string('nome'); // Cria coluna de texto
$table->string('email')->unique(); // E-mail único
$table->timestamps(); // Cria colunas created_at e updated_at
});
}
}4. 📖 Exemplo Guiado: Rodando o Projeto
Depois de escrever o código da sua migration, para que o Laravel realmente acesse o seu banco de dados (como MySQL ou SQLite) e crie a tabela física lá dentro, você digita no terminal:
php artisan migrateO Laravel lerá todas as migrations novas e construirá o banco de dados perfeito para você!
5. 🛠️ Prática Obrigatória 1: O Comando de Criação
- Qual é o comando do terminal do Laravel que usamos para criar um novo arquivo de migration?
6. 🛠️ Prática Obrigatória 2: O Comando de Execução
- Qual é o comando do terminal que realmente lê as migrations e cria as tabelas físicas no banco de dados?
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 16 PHP_Arquiteto) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
spec_backend_com_php_e_laravel/
├── capitulos/
│ └── capitulo_16_arquiteto.md💡 Checkpoint de Lógica
As migrations permitem que você “volte no tempo”! Se você fez uma alteração no banco e deu errado, você pode digitar php artisan migrate:rollback e o Laravel executa a função down() das migrations, desfazendo as últimas alterações!
10. 🔥 Desafio de Fixação
Pesquise quais são os tipos de dados que podemos usar nas colunas das migrations (ex: $table->integer, $table->boolean).
🔑 Gabarito de Código/Fórmulas
Gabarito da Prática 1:
- Usamos o comando:
php artisan make:migration nome_da_migration. Gabarito da Prática 2: - Usamos o comando:
php artisan migrate.