Sebelum menjalankan migrate dan seed, kita perlu mendaftarkan seeder di dalam DatabaseSeeder. Hal ini bertujuan agar saat proses seed dijalankan, data seeder untuk provinces dan cities yang sudah dibuat sebelumnya juga ikut dijalankan.
Langkah 1 - Register Seeder
Silahkan buka file database/seeders/DatabaseSeeder.php
, kemudian ubah kode-nya menjadi seperti berikut ini :
php
<?php
namespace Database\Seeders;
use App\Models\User;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*/
public function run(): void
{
$this->call(ProvincesTableSeeder::class);
$this->call(CitiesTableSeeder::class);
}
}
Di atas, kita telah memanggil class ProvincesTableSeeder
dan CitiesTableSeeder
di dalam method run
. Dan untuk urutannya jangan sampai keliru ya. Karena prosesnya akan dieksekusi secara berurutan.
Langkah 2 - Menjalankan Migrate dan Seed
Silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD dan pastikan sudah berada di dalam project Laravel-nya.
lua
php artisan config:cache
lua
php artisan config:clear
Kedua perintah di atas digunakan untuk mengahpus cache config di dalam aplikasi.
lua
composer dump-autoload
css
php artisan migrate --seed
Perintah di atas akan menjalankan migration table dan kita tambahkan flag -- seed
yang artinya sekaligus menjalankan perintah database seeder.
Jika keluar pertanyaan seperti berikut ini, silahkan pilih Yes
.
sql
WARN The database 'db_food_store' does not exist on the 'mysql' connection.
┌ Would you like to create it? ────────────────────────────────┐
│ ● Yes / ○ No │
└──────────────────────────────────────────────────────────────┘
Jika berhasil, maka outputnya seperti berikut ini.
Sekarang, kita bisa cek di dalam database, maka table-table akan otomatis dibuatkan beserta relasi dan data yang kita atur di dalam seeder.
Dan silahkan teman-teman buka pada table provinces
dan cities
, maka akan terdapat data yang sudah kita buat sebelumnya di dalam seeder.