laravel-clicko-informatica-seeders2

Siguiendo el articulo anterior donde empezamos a ver las funcionalidades de las migraciones y los seeders de  Laravel, hoy el equipo de programación de CLiCKO os mostraremos cómo utilizar las funciones dentro de nuestros ficheros de migraciones y como llamarlas para poder ejecutarlas.

Como ya vimos cuando generábamos un fichero de migraciones, este contenía dos funciones una up() donde nos creaba la base de datos y una down() que nos la eliminaba. Para poder llamar estas funciones se hace con el comando:

$ php artisan migrate

Con esto si es la primera vez que se ejecuta este comando se creará en nuestra base de datos la tabla migrations que contiene el control de las migraciones que han sido ejecutadas.

De modo que si usamos nuestra migración crear_tabla_usuarios y ejecutamos el comando php artisan migrate como resultado en nuestra base de datos se agregará la tabla usuarios y en la tabla migrations se añadirá el registro de la migración ejecutada.

Para eliminar la tabla usuario que acabamos de añadir tenemos varias opciones:

– Con el comando php artisan migrate:rollback que lo que hará es deshacer la última migración ejecutada en la base de datos.

– Con el comando php artisan migrate:reset que lo que hará es deshacer todas las migraciones de la base de datos.

-Tambien tenemos el comando php artisan migrate:refresh, el cual es el equivalente a usar php artisan migrate:reset y después php artisan migrate.

En el dado caso que necesitáramos agregar más campos a la tabla usuarios, podríamos simplemente ir a la migración crear_tabla_usuarios y en la función up poner la nueva columna, pero con esto perderíamos la primer versión de la tabla, entonces crearemos una nueva que se llame agregar_campos_tabla_usuarios con los comandos que ya hemos visto:

  1. Primero ejecutamos el comando: php artisan make:migration agregar_campos_tabla_usuarios, para crear la migración simple sin la plantilla.
  2. Dentro de la función up agregamos los campos que necesitamos, en este caso solo agregaremos el nombre y los apellidos.
  3. Después como la función down hace lo opuesto que la función up, dentro de esta eliminaremos los campos recien agregados.

Ahora el archivo resultante quedaría así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?

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

class AgregarCamposUsuarios extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */

    public function up()
    {
        Schema::table('usuarios', function (Blueprint $table) {
            $table->string('nombre');
            $table->string('apellidos');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */

    public function down()
    {
        Schema::table('usuarios', function (Blueprint $table) {
                $table->dropColumn(['nombre', 'apellidos']);
        });
    }
}

Para poder agregar más columnas a las tablas desde Laravel en vez de llamar al método create llamamos al método table de la clase Schema pasandole como primer parámetro a que tabla se va a agregar los campos y como segundo parámetro la función anónima donde definimos que columnas se agregaran.

Y en la función down para eliminar columnas que vendría siendo lo opuesto de agregarlas, se llama al método table y dentro de la función anónima del objeto $table se usa el método dropColumn() que recibe como parámetro ya sea el nombre de una sola columna o un arreglo con todas las columnas que se desean eliminar.

Con esto nos podemos hacer una idea inicial de como usar las migraciones, recuerda que en la documentación oficial de laravel tienes la referencia sobre la nomenclatura que se utiliza para crear las columnas, puedes verlo desde aquí.

Facebook
Facebook
LinkedIn

Full Stack Developer