Seeders

Flujo para cargar datos en la db

Los seeders son un conjunto de archivos con reglas que nos permiten cargar datos en nuestra base de datos ejecutando un solo comando. Los seeders se encuentran por defecto en la ruta: app/database/seeders

Crear un Seeder

Crear un seeder es muy sencillo, para ello debemos ejecutar el comando

node ace make:seeder my_seeder

Esto creará un archivo con el nombre especificado en la carpeta app/database/seeders. Un ejemplo simple podría ser el seeder app/database/seeders/planificacion_estados_seeder.ts, el cual crea o edita los estados disponibles para las planificaciones. Dicho archivo luce más o menos así:

import Estado from '#models/planificacion/estado';
import { BaseSeeder } from '@adonisjs/lucid/seeders'

export default class extends BaseSeeder {
  async run() {
    const estados = [
        ...
    ];
    const listados = await Estado.updateOrCreateMany('id', estados);
    console.log("Estados disponibles:", listados.length);
  }
}

Ejeuctar seeders

Una vez hayamos creado nuestros seeders podemos ejecutarlos con el comando:

node ace db:seed

Esto ejecutará todos los seeders en la carpeta app/database/seeders. Si por otro queremos ejecutar solo un seeder en especifico, podemos hacerlo pasándole como parámetro el flag --files y el archivo especifico a ejecutar, ejemplo:

node ace db:seed --files "./database/seeders/planificacion_estados_seeder.ts"