Sobes.tech
Junior

O que são migrações no contexto do desenvolvimento em PHP?

sobes.tech IA

Resposta da IA

As migrações são uma forma de versionar e gerir as alterações na estrutura da base de dados durante o desenvolvimento da aplicação.

Permitem:

  • Rastrear as alterações no esquema da base de dados.
  • Aplicar essas alterações de forma sequencial e controlada.
  • Reverter alterações quando necessário.
  • Simplificar a sincronização da estrutura da base de dados entre desenvolvedores, servidores de teste e produção.

Normalmente, cada migração é um arquivo separado com instruções para adicionar, modificar ou eliminar tabelas, colunas, índices e outros elementos do esquema. Existem dois comandos principais: "up" para aplicar a migração e "down" para revertê-la.

Nos frameworks PHP populares (por exemplo, Laravel, Symfony), existem ferramentas integradas para trabalhar com migrações.

Exemplo de arquivo de migração (pseudo-código, pode variar dependendo do framework):

<?php

// Migração para criar a tabela de utilizadores
class CreateUsersTable extends Migration
{
    /**
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id(); // ID auto-incrementado
            $table->string('name'); // Campo de string para o nome
            $table->string('email')->unique(); // Campo de string único para email
            $table->timestamp('email_verified_at')->nullable(); // Campo para verificação de email
            $table->string('password'); // Campo de string para a password
            $table->rememberToken(); // Campo para o token "lembrar-me"
            $table->timestamps(); // Campos created_at e updated_at
        });
    }

    /**
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users'); // Eliminar a tabela de utilizadores ao reverter
    }
}

O uso de migrações é uma boa prática no desenvolvimento em equipa e na implantação de aplicações, pois garante a consistência da estrutura da base de dados.