Laravel Models e Migrations: Guia Completo para Estruturar Seu Banco de Dados

Laravel Models e Migrations: Guia Completo para Estruturar Seu Banco de Dados

No Laravel, a combinação entre Models e Migrations forma a base de qualquer aplicação bem estruturada. Eles garantem uma separação clara entre a lógica de negócio e a estrutura do banco de dados, além de oferecer um versionamento confiável para qualquer alteração.

Se você quer desenvolver sistemas robustos e escaláveis com Laravel, entender esses dois pilares é essencial.


🔎 O que são Models e Migrations no Laravel

Models

Um Model representa uma entidade da aplicação — como User, Product, Post. Ele se conecta a uma tabela do banco de dados e interage com os dados usando o Eloquent ORM.

Exemplo: O model User manipula os dados da tabela users.

Migrations

As Migrations são arquivos PHP que descrevem a estrutura das tabelas do banco de dados. Elas são como “migradores de esquema”, que permitem evoluir a estrutura do banco com segurança e controle de versão.


Como criar um Model com Migration integrada

Para criar um model com sua respectiva migration de forma automática, basta usar o Artisan:

php artisan make:model Product -m

Esse comando cria:

  • Product.php dentro de app/Models
  • create_products_table.php em database/migrations

Como escrever sua primeira migration

Exemplo básico de migration para a tabela products:

Schema::create('products', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->decimal('price', 8, 2);
    $table->timestamps();
});

Comandos úteis:

  • php artisan migrate → executa todas as migrations pendentes
  • php artisan migrate:rollback → desfaz a última execução
  • php artisan migrate:fresh → recria todo o banco a partir do zero

Mantendo controle com rollback e refresh

O Laravel permite voltar versões do banco com um simples comando, ideal para testes e correções:

php artisan migrate:rollback

Você também pode limpar e recriar com:

php artisan migrate:fresh --seed

Boas práticas ao definir Models e Migrations

Nomeclatura padrão

  • Use nomes no singular para Models (Product)
  • Tabelas no plural (products)
  • Use snake_case para nomes de colunas

Use $fillable no Model:

protected $fillable = ['name', 'price'];

Evite usar $guarded = [] indiscriminadamente para proteger sua aplicação contra Mass Assignment.

Relacionamentos bem definidos:

public function category() {
    return $this->belongsTo(Category::class);
}
public function products() {
    return $this->hasMany(Product::class);
}

Automatizando com Seeders e Factories

Seeders e Factories ajudam a popular o banco com dados de teste de forma automatizada.

Criando uma Factory:

php artisan make:factory ProductFactory --model=Product

Criando um Seeder:

php artisan make:seeder ProductSeeder

No seeder:

Product::factory()->count(10)->create();

Rode tudo com:

php artisan db:seed

Entender Models, Migrations e o Eloquent ORM é o primeiro passo para se tornar um desenvolvedor Laravel completo. A clareza na modelagem de dados e o controle de versão trazido pelas migrations transformam a maneira como construímos aplicações escaláveis e profissionais.

Comece agora a construir sua aplicação Laravel com uma estrutura de dados sólida! Já aplicou essas práticas no seu projeto? Comente abaixo sua experiência ou envie dúvidas — vamos evoluir juntos! 🚀


Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *