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.phpPola-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