Skip to content

Seeder

Gambaran Umum

Seeder mengisi database dengan data awal atau data referensi yang dibutuhkan aplikasi untuk berfungsi. Di Sutomo, seeder diorganisir berdasarkan domain yang sesuai dengan struktur model — setiap domain memiliki direktori seeder sendiri dengan seeder individual untuk entitas tertentu, dikoordinasikan oleh RunnerSeeder.

Mengapa Menggunakan Seeder?

  • Data referensi esensial — Jenis Kelamin, Agama, Etnis, Lokalisasi
  • Data demo/pengembangan — Data dummy untuk pengujian
  • Otomatisasi pengaturan — Wizard pengaturan menggunakan seeder
  • Konsistensi — Data dasar yang sama di semua lingkungan

Struktur Folder

database/seeders/
├── DatabaseSeeder.php
├── Academic/
│   ├── RunnerSeeder.php
│   ├── DummySeed.php
│   ├── EnrollmentSeeder.php
│   ├── QuizSeeder.php
│   ├── SubjectSeeder.php
│   └── TranscriptSeeder.php
├── Acquisition/
│   └── RunnerSeeder.php
├── Assistant/
│   ├── RunnerSeeder.php
│   └── ChatbotTrainingSeeder.php
├── Bulletin/
│   └── AnnouncementSeeder.php
├── ContractManagement/
│   └── RunnerSeeder.php
├── Core/
│   ├── RunnerSeeder.php
│   ├── BannerSeeder.php
│   ├── DepositTypeSeeder.php
│   ├── DiscountSeeder.php
│   ├── DocumentTypeSeeder.php
│   ├── EmployeeSeeder.php
│   ├── EthnicitySeeder.php
│   ├── GenderSeeder.php
│   ├── LocalizationSeeder.php
│   ├── ReligionSeeder.php
│   ├── RoleSeeder.php
│   ├── SettingSeeder.php
│   ├── ShieldSeeder.php
│   └── UserSeeder.php
├── Financial/
│   ├── RunnerSeeder.php
│   ├── FinanceSettingSeeder.php
│   ├── PaymentMethodSeeder.php
│   └── TransactionSeeder.php
├── Geographic/
│   └── RunnerSeeder.php
├── Hiring/
│   ├── RunnerSeeder.php
│   ├── ApplicantSeeder.php
│   ├── CandidateEducationSeeder.php
│   ├── CandidateExperienceSeeder.php
│   ├── CandidateSeeder.php
│   ├── HiringPipelineSeeder.php
│   ├── RequireTestSeeder.php
│   ├── TalentInterviewSeeder.php
│   └── VacancySeeder.php
├── Institution/
│   └── RunnerSeeder.php
├── News/
│   └── RunnerSeeder.php
├── Organization/
│   └── RunnerSeeder.php
├── Platform/
│   ├── AboutPageSeeder.php
│   ├── BulletinSeeder.php
│   ├── FacilitySeeder.php
│   ├── OnboardingSeeder.php
│   ├── PropertySeeder.php
│   └── RatingSeeder.php
└── Support/
    └── RunnerSeeder.php

Pola-Pola

1. Pola RunnerSeeder

Setiap domain memiliki RunnerSeeder yang memanggil seeder individual dalam urutan yang benar.

2. updateOrCreate — Seeder Idempoten

Data referensi menggunakan updateOrCreate sehingga seeder dapat dijalankan berkali-kali tanpa duplikasi.

3. ShieldSeeder — Pengaturan Role & Permission

Menggunakan firstOrCreate untuk berjalan dengan aman bersama Filament Shield.

4. DummySeed — Data Pengembangan

Menggunakan factory untuk menghasilkan data uji untuk pengembangan.

Berkas Utama

database/seeders/DatabaseSeeder.php
database/seeders/Core/RunnerSeeder.php
database/seeders/Core/GenderSeeder.php
database/seeders/Core/ReligionSeeder.php
database/seeders/Core/ShieldSeeder.php
database/seeders/Geographic/RunnerSeeder.php