Skip to content

Nucleify/nuc_database

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

  nuc_database

This module provides automatic seeder discovery and execution for all modules.


Features

  • Auto-discovery: Automatically finds and runs seeders from enabled modules
  • Config-based: Uses module config.json to determine which seeders to run
  • Smart naming: Automatically guesses seeder names from module names
  • Pluralization handling: Intelligently handles plural module names (e.g., nuc_modulesModuleSeeder)

Usage

The SeederDiscoveryService is automatically used by the DatabaseSeeder to discover and call all module seeders.


In DatabaseSeeder

use App\Services\SeederDiscoveryService;

public function run(): void
{
    $discoveryService = app(SeederDiscoveryService::class);
    $discoveryService->discoverAndCallSeeders($this);
}

How it works

  1. Scans all directories in modules/
  2. Reads each module's config.json
  3. Only runs seeders for modules with "installed": true and "enabled": true
  4. Finds the seeder using:
    • Explicit "seeder": "SeederName" field in config.json
    • OR auto-guesses from module name

Auto-guessing Rules

  • nuc_modulesModuleSeeder (trims trailing 's')
  • nuc_filesFileSeeder (trims trailing 's')
  • nuc_entitiesEntitiesSeeder (keeps 'ies')
  • nuc_friendshipFriendshipSeeder (no 's' to trim)

Configuration

Add to your module's config.json:

{
  "name": "nuc_your_module",
  "seeder": "YourModuleSeeder",
  "installed": true,
  "enabled": true
}

Configuration Options

  • "seeder": "SeederName" - Explicit seeder class name
  • "seeder": false - Explicitly disable seeder for this module (e.g., service-only modules)
  • No seeder field - Auto-guess seeder name from module name

    Contributors


About

Module that manages Nucleify's database seeding with auto-discovery.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages