domingo, 4 de junio de 2017

Como usar las migraciones en Laravel

   



Migraciones en laravel

Listado de las operaciones principales que se pueden hacer con el comando php artisan migrate:

  • refresh: Esta operación restablece la base de datos y vuelve a ejecutar todas las migraciones
  • reset: Esta operación anula todas las migraciones
  • rollback: Esta operación es un tipo de "deshacer o ir para atras" y simplemente hace retroceder la última operación
  • status: Esta operación produce una salida similar a una tabla de las migraciones y indica si han sido o no ejecutadas

Ejemplo de migracion:

Laravel 5 contiene dos migraciones en el directorio database/migrations. 

La primera migración crea la tabla users.

El segundo crea la tabla password_resets, que, como habrás adivinado, se utiliza para recuperar contraseñas perdidas. Las migraciones operan en la base de datos que se configura en el archivo de configuración config/database.php:


<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::defaultStringLength(191);
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }
    
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

Las migraciones amplían la clase Migration y utilizan la clase Blueprint.

Hay dos métodos: up y down, que se utilizan cuando se utilizan los comandos migrate y rollback, respectivamente. El método Schema :: create () se llama con el nombre de tabla como el primer parámetro y una función de devolución de llamada como el segundo parámetro, que acepta una instancia de un objeto Blueprint como un parámetro.

Creación de la tabla

El objeto $table tiene unos pocos métodos que realizan tareas como crear índices, configurar campos de incremento automático, indicar qué tipo de campos deben crearse y pasar el nombre del campo como parámetro.

El primer comando se utiliza para crear un ID de campo de incremento automático, que será la clave primaria de la tabla. A continuación, se crean los campos de cadena, como nombre, correo electrónico y contraseña. Tenga en cuenta que el método único está encadenado a la instrucción create para el campo de correo electrónico, indicando que el campo de correo electrónico se utilizará como nombre de inicio de sesión / ID de usuario, ya que es una práctica común en la mayoría de las aplicaciones web modernas. El rememberToken se utiliza para permitir que el usuario permanezca autenticado por cada sesión. Este token se restablece en cada inicio de sesión y cierre de sesión, protegiendo al usuario de un intento de secuestro potencialmente malintencionado.

La magia de la migración de Laravel

Las migraciones de Laravel también son capaces de crear campos de sello de tiempo que se utilizan para almacenar automáticamente la fecha y hora de la creación y actualizar para cada modelo a través de su fila de tabla.

$table->timestamps();

La siguiente línea de código le indica a la migración que cree automáticamente dos columnas en la tabla, que son: created_at y updated_at, que es utilizada automáticamente por la asignación Eloquent Object-relational (ORM) de Laravel para permitir que la aplicación sepa cuándo se creó el objeto y cuándo fue actualizado:

$table->timestamps()

En el ejemplo siguiente, los campos se actualizan de la siguiente manera:


/*
*   Created_at se establece con timestamps
*/
$user = new User();
$user->email = "cesar@codigojavalibre.com";
$user->name = "Cesar";
$user->save(); // Created_at se establece con timestamps
/*
*   Updated_at se establece con timestamps
*/
$user = User::find(1); //donde el id es 1
$user->email = "cesar2@codigojavalibre.com";
$user->save(); /Updated_at se actualiza


Otra gran característica de Laravel es el campo de borrado suave. Esto proporciona un tipo de papelera de reciclaje para permitir que los datos se restauren opcionalmente en un momento posterior.

Esta función simplemente agrega otra columna a la tabla para permitir la eliminación suave de los datos. El código que se agregará a la migración se verá así:

$table->softDeletes();

Esto agrega una columna a la base de datos, deleted_at, que tendrá null como su valor o una marca de tiempo para indicar cuándo se borró el registro. Esto crea una función de reciclaje directamente en su aplicación de base de datos.

Ejecute el siguiente comando:

php artisan migrate

Se inicia la migración y se crean las tablas. La tabla de migración y users ahora aparece, como se muestra en la siguientes captura de pantalla:





Para revertir la migración, ejecute el siguiente comando:

php artisan migrate:rollback

El comando rollback utiliza la tabla de migración para determinar qué acciones deben revertirse. En este caso, la tabla de migraciones, una vez ejecutada, está vacía.



Y eso seria todo :) espero que les haya servido.


César GI

About César GI

Lo que me importa es poder enseñar lo poco que se, por que asi como yo aprendo leyendo gracias a las personas que comparten sus conocimiento yo tambien quiero ayudar a la comunidad en español aportando lo poco que he aprendido hasta el momento.