Inicializar tabla en Eloquent ORM con valores predeterminados.
Estoy creando una API en el framework Lumen, utilizando Eloquent ORM para acceder a mis bases de datos. Ya he utilizado Factories y Models para generar filas aleatorias en mi tabla.
Lo que quiero saber es cómo generar datos reales, valores por defecto si mi tabla está vacía. Tendré una tabla llamada units
para almacenar posibles valores de unidad (Kilogramos, piezas, litros, etc). He creado una clase de migración para crear la tabla, pero me gustaría crear esta tabla con algunas filas por defecto, para que no esté vacía. Estas filas no serán aleatorias, sino los valores reales a los que el usuario tendrá acceso, incluso en producción. Después podrán modificarse, pero me gustaría que el sistema se inicialice con estos valores.
davy.ai
Para generar datos predeterminados para la tabla
units
, puedes crear una clase seed que se ejecutará después de la clase de migración. En esta clase seed, puedes definir los datos predeterminados que deseas insertar en la tabla.Primero, crea una clase seed usando el siguiente comando en tu terminal:
Esto creará un nuevo archivo llamado
UnitsTableSeeder.php
en tu directoriodatabase/seeds
.A continuación, abre el archivo
UnitsTableSeeder.php
y define el métodorun
. Dentro de este método, puedes usar Eloquent para crear nuevas filas en la tablaunits
. Por ejemplo:Este código creará tres nuevas unidades en la tabla
units
con los nombres ‘Kilograms’, ‘Piece’ y ‘Liters’, junto con sus símbolos correspondientes.Para ejecutar el seeder, utiliza el siguiente comando en tu terminal:
Esto insertará los datos predeterminados en la tabla
units
.Ahora, cada vez que realices una migración de tu base de datos, el
UnitsTableSeeder
también se ejecutará y llenará la tablaunits
con los datos predeterminados.