ToDoVel [Parte 06]: Iniciando o banco de dados (Migrations)

Observação: Este tutorial refere-se ao Laravel-4-BETA, estando totalmente DESATUALIZADO para a versão atual. Muita coisa mudou no framework…

Agora a p0rr4 tá ficando séria!
Vamos começar a montar o banco de dados para a nossa aplicação.
Para isso, vamos utilizar o serviço de Laravel Migrations, um sistema de “versionamento” do banco de dados.
Com o migrations do Laravel vamos ter uma boa automação na criação, edição e exclusão de tabelas.

Configurando o banco de dados

Se você ainda não o fez, FAÇA!
Configure seu banco de dados no arquivo app/config/database.php

Criando o Migration Para as Tarefas

O que estamos construindo é um sisteminha de to-do list.
Então, teremos tarefas (tasks) para serem listadas e concluídas.
Para criar o nosso primeiro migration, executamos na linha de comando:

php artisan migrate:make tasks

O arquivo da migração foi criado dentro da pasta app/database/migrations.

Passou correndo e você não percebeu…
Laravel possui um pequeno cliente para executar ações na linha de comando chamado Artisan.
Com ele iremos executar várias tarefas de forma fácil, dentre elas as migrations.

O arquivo criado para a sua migration possui o nome “dia-hora-da-criação”_tasks.php.
Este arquivo possui dois métodos: up() e down().
O método up é executado quando você manda o Artisan instalar ou atualizar as migrações.
O método down é executado quando fazemos rollback das migrações.

Schema Builder

Precisamos agora descrever o algoritmo para os métodos up e down.
Para isso o Laravel possui um Schema Builder.
Ao invés de escrever comandos SQL, que as vezes são específicos a um SGBD, escreve-se nesse padrão fornecido pelo Laravel tornando seu código multi SGBD.

Para o método up vamos precisar criar a tabela.
Para criar a tabela, o modelo é: Schema::create(‘nome_da_tabela’, function($table) { comandos });.
E ai, dentro do closure criamos as colunas de acordo com a lista de colunas do Schema Laravel.
O arquivo de migration atual ficará assim:

<?php

use Illuminate\Database\Migrations\Migration;

class Tasks extends Migration {

	/**
	 * Run the migrations.
	 *
	 * @return void
	 */
	public function up()
	{
		Schema::create('tasks', function($table){
                    $table->increments('id'); //coluna de id auto-increment
                    $table->string('titulo', 100); //coluna de titulo, varchar de 100 caracteres
                    $table->boolean('status')->default(FALSE); //booleano iniciando em falso
                    
                    //criando duas colunas, uma marca o timestamp de quando a TASK é criada e a outra coluna
                    //marca o timestamp de quando a TASK for alterada
                    $table->timestamps();
                });
	}

	/**
	 * Reverse the migrations.
	 *
	 * @return void
	 */
	public function down()
	{
		Schema::dropIfExists('tasks'); //se a tabela existir, exclui
	}

}

Rodando as Migrações

E agora, é só rodar as migrações e ser feliz

php artisan migrate

Ao final você verá que seu banco de dados possui 2 tabelas:
tasks – que é a tabela que descrevemos
migrations – tabela utilizada pelo Laravel para saber quais migrações já foram feitas. É com ela que ele controla as atualizações e os rollbacks.

Por hora chega.
Sinta-se feliz, com quase nada de código já criou DUAS tabelas no banco de dados 😀

O código fonte do projeto encontra-se no GitHub.
https://github.com/frenetic/todovel

4 thoughts on “ToDoVel [Parte 06]: Iniciando o banco de dados (Migrations)

  1. Mais dois detalhes para os que podem ficar confusos com a rapidez das explicações:

    1 – o comando php artisan deve ser executado dentro da pasta do projeto.

    2 – o arquivo de migração (data_hora_tasks.php) encontra-se na pasta app/database/migrations

    Realmente é fácil criar esquemas no Laravel! 😀

Deixe um comentário

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