Desde laravel podemos crear tablas y relaciones para la base de datos, ademas nos ofrece un control de versiones permitiendo crear tablas, modificar, establecer relaciones, eliminarlas y todo través de comandos que facilitan este proceso.
beneficios
- Control de versiones: puede ir entre estados de la base de datos, por ejemplo ubicándote en uno donde no esta creada cierta tabla o campo, facilita la depuración de errores ademas de contar con un registro de los cambios hechos para poder compartir con su equipo de trabajo .
- Abstracción del motor de base de datos: las migraciones crearían la misma base de datos independiente de sistema de gestión de base de datos que utilice (MySQL, PostgreSQL, SQLite, SQL Server).
- Facilita el despliegue del proyecto: simplificando la creación de la base de datos en nuevo servidor.
crear una migragión
Desde la consola, ubicándonos en la raíz de nuestro proyecto utilizamos el comando.
php artisan make:migration create_mi_tabla_table
Reemplaza «mi_tabla» por el nombre de la tabla que desees crear, la migración se creara en la ruta «database/migrations» de nuestro proyecto.
2020_02_03_170502_create_mi_tabla_table.php
Como podemos ver, el archivo creado tiene un prefijo de fecha, esto con el fin de ejecutar la migraciones según su fecha de creación.
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateMiTablaTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('mi_tabla', function (Blueprint $table) { $table->bigIncrements('id'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('mi_tabla'); } }
Ejecutar la migración
Al ejecutar la migración con el comando «php artisan migrate» esta se encarga de crear la tablas en la base de datos .
php artisan migrate Migrating: 2020_02_03_154406_create_mi_tabla_table Migrated: 2020_02_03_154406_create_mi_tabla_table (0.02 seconds)
Nota: si recibes el siguiente error en la consola, por favor ve a configurar la conexión con la base de datos.
Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes
Una vez terminado este proceso encontraras en tu base de datos dos tablas:
- migrations
- mi_tabla
Lista de comandos de la sección migrate
Podemos encontrar la lista de comandos con el comando «php artisan» en la sección «migrate».
php artisan migrate migrate:fresh Drop all tables and re-run all migrations migrate:install Create the migration repository migrate:refresh Reset and re-run all migrations migrate:reset Rollback all database migrations migrate:rollback Rollback the last database migration migrate:status Show the status of each migration
En una próxima entrada para el blog agregaremos mas campos a la migración.