Database: Seeding

Database: Seeding


Database Seeding pada Laravel digunakan untuk mengisi database dengan data awal atau data dummy. Ini sangat berguna untuk pengembangan dan pengujian aplikasi, karena memungkinkan pengembang untuk dengan cepat mengisi database dengan data yang diperlukan untuk menjalankan aplikasi atau melakukan pengujian. Berikut adalah beberapa kegunaan utama dari Database Seeding pada Laravel:

A. Mengisi Database dengan Data Awal:

  • Seeder memungkinkan kamu untuk mengisi database dengan data default yang diperlukan oleh aplikasi.
   // database/seeders/DatabaseSeeder.php

   namespace DatabaseSeeders;

   use IlluminateDatabaseSeeder;
   use AppModelsUser;

   class DatabaseSeeder extends Seeder
   {
       public function run()
       {
           User::factory()->count(50)->create();
       }
   }
Enter fullscreen mode

Exit fullscreen mode

B. Membuat Data Dummy untuk Pengujian:

  • Seeder memudahkan pembuatan data dummy untuk keperluan pengujian dan pengembangan fitur. Kamu bisa membuat data realistis yang diperlukan untuk memastikan fitur berjalan dengan baik.
   // database/seeders/UserSeeder.php

   namespace DatabaseSeeders;

   use IlluminateDatabaseSeeder;
   use AppModelsUser;

   class UserSeeder extends Seeder
   {
       public function run()
       {
           User::factory()->count(10)->create();
       }
   }
Enter fullscreen mode

Exit fullscreen mode

C. Mengelola Data Uji yang Konsisten:

  • Seeder memungkinkan kamu untuk menjaga konsistensi data uji di berbagai lingkungan pengembangan. Ini sangat membantu dalam tim pengembangan untuk memastikan semua orang memiliki data uji yang sama.
   php artisan db:seed --class=UserSeeder
Enter fullscreen mode

Exit fullscreen mode

D. Mengotomatisasi Pengisian Data:

  • Seeder dapat dijalankan sebagai bagian dari proses build atau deployment, memastikan database diisi dengan data yang diperlukan setiap kali aplikasi di-deploy.
   // Menjalankan semua seeder
   php artisan db:seed
Enter fullscreen mode

Exit fullscreen mode

E. Mempermudah Pengembangan Fitur:

  • Dengan seeder, kamu bisa dengan cepat mengisi database dengan data yang diperlukan untuk mengembangkan dan menguji fitur baru tanpa harus memasukkan data secara manual.
   // Seeder untuk posts
   namespace DatabaseSeeders;

   use IlluminateDatabaseSeeder;
   use AppModelsPost;

   class PostSeeder extends Seeder
   {
       public function run()
       {
           Post::factory()->count(20)->create();
       }
   }
Enter fullscreen mode

Exit fullscreen mode



Contoh Implementasi Database Seeding

Berikut adalah contoh lengkap dari penggunaan Database Seeding pada Laravel:

A. Membuat Seeder:

   php artisan make:seeder UserSeeder
Enter fullscreen mode

Exit fullscreen mode

B. Mengisi Seeder dengan Data:

   // database/seeders/UserSeeder.php

   namespace DatabaseSeeders;

   use IlluminateDatabaseSeeder;
   use AppModelsUser;

   class UserSeeder extends Seeder
   {
       public function run()
       {
           User::factory()->count(10)->create();
       }
   }
Enter fullscreen mode

Exit fullscreen mode

C. Menjalankan Seeder:

   php artisan db:seed --class=UserSeeder
Enter fullscreen mode

Exit fullscreen mode

D. Menambahkan Seeder ke DatabaseSeeder:

   // database/seeders/DatabaseSeeder.php

   namespace DatabaseSeeders;

   use IlluminateDatabaseSeeder;

   class DatabaseSeeder extends Seeder
   {
       public function run()
       {
           $this->call([
               UserSeeder::class,
               PostSeeder::class,
           ]);
       }
   }
Enter fullscreen mode

Exit fullscreen mode

E. Menjalankan Semua Seeder:

   php artisan db:seed
Enter fullscreen mode

Exit fullscreen mode



Penggunaan dengan Model Factories

Seeder sering digunakan bersamaan dengan model factories untuk membuat data dummy dengan mudah. Berikut adalah cara menggunakannya:

A. Membuat Factory:

   php artisan make:factory UserFactory --model=User
Enter fullscreen mode

Exit fullscreen mode

B. Mendefinisikan Factory:

   // database/factories/UserFactory.php

   namespace DatabaseFactories;

   use AppModelsUser;
   use IlluminateDatabaseEloquentFactoriesFactory;
   use IlluminateSupportStr;

   class UserFactory extends Factory
   {
       protected $model = User::class;

       public function definition()
       {
           return [
               'name' => $this->faker->name(),
               'email' => $this->faker->unique()->safeEmail(),
               'email_verified_at' => now(),
               'password' => bcrypt('password'), // password
               'remember_token' => Str::random(10),
           ];
       }
   }
Enter fullscreen mode

Exit fullscreen mode

C. Menggunakan Factory dalam Seeder:

   // database/seeders/UserSeeder.php

   namespace DatabaseSeeders;

   use IlluminateDatabaseSeeder;
   use AppModelsUser;

   class UserSeeder extends Seeder
   {
       public function run()
       {
           User::factory()->count(10)->create();
       }
   }
Enter fullscreen mode

Exit fullscreen mode



Kesimpulan

Database Seeding pada Laravel sangat berguna untuk mengisi database dengan data awal atau data dummy. Ini membantu pengembangan dan pengujian aplikasi dengan menyediakan data yang diperlukan secara cepat dan konsisten. Seeder memungkinkan otomatisasi pengisian data, mempermudah pengembangan fitur, dan memastikan data uji yang konsisten di berbagai lingkungan pengembangan. Dengan menggunakan seeder bersama dengan model factories, kamu bisa membuat data realistis yang diperlukan untuk pengujian dan pengembangan dengan mudah.



Source link
lol

By stp2y

Leave a Reply

Your email address will not be published. Required fields are marked *

No widgets found. Go to Widget page and add the widget in Offcanvas Sidebar Widget Area.