Hola, ¿Cómo están? Continuando con el curso de Laravel 10, hoy veremos lo que son las migraciones en Laravel 10.
Migraciones en Laravel
Las migraciones en Laravel son una forma de definir la estructura de nuestra base de datos mediante código (en lugar de hacerlo de forma manual a través de un administrador de base de datos), las migraciones nos permiten crear, modificar y eliminar las tablas, columnas, índices y sus relaciones entre ellos.
El esquema de migraciones nos permite definir la estructura de la base de datos independientemente del motor de base de datos que estemos utilizando (MySQL, PostgreSQL, SQLite, etc.) y lo mejor de todo nos permite compartir con el equipo de desarrollo.
Configurar la base de datos
Antes de generar las migraciones debemos crear y configurar nuestra base de datos, en el administrador de MySQL que estemos utilizando debemos crear la base de datos, en mi caso es “curso_db”.
Seguidamente, en el archivo de entorno .env realizamos la configuración para la conexión con la base de datos creada. (la configuración dependerá del motor de base de datos que estemos utilizando en mi caso es MySQL).
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=curso_db DB_USERNAME=root DB_PASSWORD=
Generar una migración
En Laravel para crear una migración se debe de utilizar el siguiente comando de Artisan:
php artisan make:migration create_products_table
Este comando creará una clase de PHP en el directorio /database/migrations con el nombre que le hemos asignado (por convención al crear las tablas de la datos deben de estar en plural).
Si analizamos la clase creada veremos que genera dos métodos, el método Up() y el método Down().
El método Up() se encarga de generar las migraciones, esto quiere decir que al momento de correr las migraciones genera todo el esquema de nuestra base de datos. Por defecto ya viene con dos campos, el campo “id” que es la llave principal de la tabla “Products” y el campo “timestamps” que se encarga de generar las columnas “created_at” que registrar la fecha y hora donde se creó el registro y “update_up” donde se registra la fecha y hora donde se actualizó el registro.
El método Down() es el proceso contrario, cuando se ejecuta revierte todos los cambios aplicados en esa migración y vuelve a un estado anterior.
Definir las columnas de la tabla
Ahora crearemos las columnas para nuestra tabla “Products”, de acuerdo al tipo de dato de cada uno de nuestros campos (los más utilizados son: string, integer, text, decimal, boolean, etc. para mayor detalle puedes visitar la página oficial de Laravel).
$table->integer('code'); $table->string('name', 35); $table->text('description')->nullable(); $table->decimal('price', 10, 2); $table->boolean('status')->default(true);
Datos a considerar:
- Al crear cada campo por defecto es obligatorio, la palabra reservada nullable es para especificar que el campo permita datos nulos.
- La palabra reservada default es para especificar que el campo por defecto tomará el valor asignado cuando se envíe vacío o nulo.
- Cuando declaramos el campo de tipo string podemos especificar la cantidad de caracteres.
- Cuando declaramos el campo de tipo decimal especificamos la cantidad de caracteres y el número de decimales que contendrá el dato.
Ejecutar las migraciones
Una vez creado y llenado nuestras migraciones, debemos ejecutar para poder generar el esquema de nuestra base de datos, para esto utilizamos el siguiente comando de Artisan.
php artisan migrate
Comienza el proceso de generar todas las migraciones creadas.
Si observamos el administrador de base de datos de MySQL podemos observar que se generó correctamente las tablas en la base de datos “curso_db”.
De momento es todo, con lo aprendió hoy podrás crear y ejecutar las migraciones de tus proyectos, nos vemos la siguiente.
Saludos y éxitos.