Crear las Migraciones Laravel Hugo

Crear Migraciones en Laravel

Las migraciones en Laravel son una herramienta poderosa que facilita la creación y modificación de la estructura de una base de datos de forma controlada y versionada. Permitiendo que el proceso de administración de la base de datos sea más eficiente y manejable.

En esta clase, exploraremos cómo crear y ejecutar migraciones en Laravel, cómo definir las columnas. Aprenderemos a utilizar comandos de Artisan para generar y ejecutar migraciones de acuerdo al modelo creado en la anterior clase “Análisis y diseño del sistema de Mascotas”.

¡Hola! ¡Bienvenidos al curso de Laravel Hugo!

¡Empecemos!

¿Qué es una base de datos?

Una base de datos es un conjunto organizado de datos estructurados y relacionados entre sí, donde se almacenan y gestionan información de manera que se pueda acceder para poder ver, crear, actualizar o eliminar datos de forma eficiente.

¿Qué es SQLite?

SQLite es un gestor de bases de datos relacional, ligero y autónomo, que no requiere una configuración de un servidor, almacena toda la información en un solo archivo. Es ampliamente utilizado en aplicaciones de software debido a su simplicidad, eficiencia y facilidad de integración.

¿Qué son las migraciones en Laravel?

Las migraciones en Laravel son una característica que permite gestionar y mantener la estructura de la base de datos de una aplicación de manera programática y versionada. Con las migraciones podemos definir la estructura de las tablas para crear, modificar o eliminar columnas de una tabla. Cada migración tiene una marca de tiempo única que se utiliza para ordenar las migraciones en secuencia, lo que permite ejecutarlas en el orden correcto para mantener la integridad de la base de datos.

Archivo de configuración .env

Laravel 11 viene configurado por defecto para poder utilizar una base de datos SQLite, lo que elimina la necesidad de realizar configuraciones adicionales para comenzar el desarrollo de nuestra aplicación. En el archivo de configuración simplemente verificamos esta configuración, como también nos aseguramos que el archivo “database.sqlite” exista en la carpeta “/database” de nuestro proyecto.

Crear migraciones en laravel

Ahora comenzaremos a crear las migraciones de nuestra aplicación, siguiendo el análisis y diseño realizados en la clase anterior. Utilizaremos Artisan, la interfaz de línea de comandos de Laravel, para generar y gestionar estas migraciones de manera eficiente.

Crear la migración Refugios

Desde la Terminal ejecutamos el siguiente comando:

php artisan make:migration create_refugios_table

Este comando creará una nueva migración en el directorio “database/migrations” para crear la tabla “Refugios”. A continuación, definiremos los campos de la tabla según el análisis realizado.

$table->string('nombre', 75);
$table->string('ciudad', 35);
$table->string('direccion', 250)->nullable();
$table->string('telefono', 15)->nullable();
$table->string('encargado', 75);

Crear la migración Personas

Desde la Terminal ejecutamos el siguiente comando:

php artisan make:migration create_personas_table

A continuación, definiremos los campos de la tabla Persona.

$table->string('dni', 35);
$table->string('nombre', 75);
$table->string('direccion', 250)->nullable();
$table->string('telefono', 15)->nullable();

Crear la migración Mascotas

Desde la Terminal ejecutamos el siguiente comando:

php artisan make:migration create_mascotas_table

A continuación, definiremos los campos de la tabla Mascotas. En la tabla Mascota existe una relación uno a muchos con la tabla Refugios. En la tabla “Mascotas” registramos el campo “refugio_id” como llave foránea de la tabla “Refugios”, esto creará una integridad referencial a nivel de la base de datos.

$table->string(nombre, 35);
$table->string('codigo', 30);
$table->enum('tipo', ['Perro', 'Gato', 'Cabras']);
$table->integer('edad')->default(0);
$table->string('raza', 75);
$table->string('color', 35);
$table->string('pedigri', 75)->nullable();
$table->string('url', 75)->nullable();

$table->unsignedBigInteger('refugio_id');
$table->foreign('refugio_id')->references('id')->on('refugios')->onDelete('cascade');

Crear la migración Vacunas

Desde la Terminal ejecutamos el siguiente comando:

php artisan make:migration create_vacunas_table

A continuación, definiremos los campos de la tabla Vacunas.

$table->string('tipo', 35);
$table->decimal('precio', 10, 2);

La relación entre la tabla “Vacunas” y “Mascotas” es una relación muchos a muchos. De manera similar, en las migraciones se debe indicar esta relación (muchos a muchos), creando una tabla Pivot (tercera tabla), esto lo realizaremos en el mismo método Up de la migración de “Vacunas” que lo llamaremos “mascota_vacuna” (también se puede crear una migración independiente para la tabla pivot con la combinación de ambas tablas.

Schema::create('mascota_vacuna', function (Blueprint $table) {
    $table->date('fecha', 35);
    $table->unsignedBigInteger('mascota_id');
    $table->foreign('mascota_id')->references('id')->on('mascotas')->onDelete('cascade');
    $table->unsignedBigInteger('vacuna_id');
    $table->foreign('vacuna_id')->references('id')->on('vacunas')->onDelete('cascade');
});

Crear la migración Adopciones

Desde la Terminal ejecutamos el siguiente comando:

php artisan make:migration create_adopciones_table

A continuación, definiremos los campos de la tabla Adopciones. A continuación, definiremos los campos de la tabla Adopciones. En la tabla Adopciones existe una relación uno a uno con la tabla Mascotas y una relación uno a muchos con la tabla Personas, creamos estas relaciones.

$table->date('fecha');
$table->string('detalle', 250);

$table->unsignedBigInteger('mascota_id');
$table->foreign('mascota_id')->references('id')->on('mascotas')->onDelete('cascade');
$table->unsignedBigInteger('persona_id');
$table->foreign('persona_id')->references('id')->on('personas')->onDelete('cascade');

Ejecutar las migraciones en Laravel

Una vez registrados y llenados los campos de las migraciones. Ejecutamos las migraciones desde la consola de Artisan para generar toda la estructura de la base de datos con el siguiente comando:

php artisan migrate

Hasta aquí hemos cubierto todo lo relacionado con las migraciones en Laravel 11. Ya hemos creado nuestra base de datos, todas las tablas y sus relaciones de integridad. En la siguiente clase, comenzaremos a crear los modelos de Eloquent.

Saludos y éxitos.

Victor Peña

Victor Peña

Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *