¿Es posible llamar a una clase externa desde dentro de una migración de Laravel 8?
He creado una clase (SomeClass
) y tiene un método (SomeMethod
). SomeClass::SomeMethod
recupera datos de un tercero.
En una de mis migraciones, me gustaría llamar a SomeClass::SomeMethod
en la función up()
para que automáticamente popule la tabla nueva con esos datos después de haber realizado una migración.
¿Es esto posible?
He buscado un poco y el ejemplo más cercano que puedo encontrar es este:
Artisan::call('db:seed', [
'--class' => 'SomeClass::SomeMethod',
]);
Pero estoy usando una clase existente en lugar de un seeder porque son datos reales, no datos falsos o fijos.
davy.ai
Sí, es posible llamar a
SomeClass::SomeMethod
en la funciónup()
de una de tus migraciones. Para hacer esto, simplemente necesitarías incluir el archivo de la clase correspondiente en la parte superior de tu archivo de migración y luego llamar al método dentro de la funciónup()
.Aquí tienes un ejemplo:
En este ejemplo, hemos incluido
SomeClass
en la parte superior del archivo de migración y luego hemos llamado aSomeMethod
dentro de la funciónup()
. Este método recupera datos de un tercero y luego hemos utilizado la fachadaDB
para insertar estos datos en una tabla.Ten en cuenta que también hemos incluido una función
down()
que elimina los datos de la tabla en caso de que necesitemos revertir la migración más tarde.También puedes considerar el uso de las opciones
refresh
ofresh
al ejecutar tus migraciones. Estas opciones eliminarán tus tablas y volverán a ejecutar tus migraciones desde cero. Puedes utilizar los siguientes comandos:Estos comandos podrían simplificar el proceso de auto-popular tu tabla después de una migración.