Las Migraciones son una herramienta que nos proporciona Laravel para crear estructuras de tablas en nuestra base de datos de forma sencilla, definiendo tablas con sus columnas y tipos de datos.
Las migraciones se crean en el directorio Database\Migrations, donde ya tenemos un par de ellas creadas, vemos que la primera que nos encontramos es ‘create_users_table’ lo que como su nombre indica será para crear la tabla usuarios, si abrimos el archivo nos encontramos con el siguiente código:
<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password', 60); $table->rememberToken(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('users'); } }
Vemos dos métodos, Up & Down, los cuales significan, cuando ejecutamos la migración (Up) crea la tabla con sus tipos de columnas, y Down es un ‘rollback’ por si queremos retroceder si nos hemos equivocado en algo. En la mayoría de casos se usa como éste ejemplo, creas la tabla (Schema::create()), y si quiero retroceder la borras(Schema::drop()).
Vamos a ver la función CREATE, vemos que le pasamos dos parámetros, el primero es el nombre que va a tener la tabla, y el segundo siempre lo vamos a dejar así, que es la clase para crear la tabla propia de laravel.
Tenemos la tabla ‘users’ creada, ahora con $table->tipo(‘nombre’) definimos las columnas y de que tipo será cada una, vemos que éste código creará la siguiente estructura en nuestro MySQL:
- Id (Autoincremental)
- Name (Varchar 255)
- Email (Varchar 255) UNIQUE
- Password (Varchar 60)
- Remember Token (Eso es el token que utiliza laravel para el LOGIN, no hacer caso por ahora)
- created_at (TIMESTAMP)
- updated_at (TIMESTAMP)
Los campos created_at / updated_at son campos que rellena laravel automáticamente cada vez que modificamos o creamos un registro en nuestra base de datos.
Las migraciones se ejecutan con comandos de artisan:
php artisan migrate
Creamos las migraciones:
php artisan migrate:rollback
Rollback de las migraciones, en este caso borramos:
Para crear migraciones es parecido al proceso para crear un Modelo, se recomienda usar nombres descriptivos para la migración como hemos visto el ejemplo de create_users_table, en nuestro caso será.
- create_posts_table
- create_comments_table
Y para crear las migraciones ejecutamos el comando artisan:
php artisan make:migration create_users_table