برنامه نویسی

پایگاه داده: Seeding – DEV Community

Database Seeding در لاراول برای پر کردن پایگاه داده با داده های اولیه یا داده های ساختگی استفاده می شود. این برای توسعه و آزمایش برنامه بسیار مفید است، زیرا به توسعه دهندگان اجازه می دهد تا به سرعت پایگاه داده را با داده های مورد نیاز برای اجرای برنامه یا انجام آزمایش پر کنند. در زیر برخی از کاربردهای اصلی Database Seding در لاراول آورده شده است:

آ. پر کردن پایگاه داده با داده های اولیه:

  • Seeder به شما امکان می دهد پایگاه داده را با داده های پیش فرض مورد نیاز برنامه پر کنید.
   // database/seeders/DatabaseSeeder.php

   namespace Database\Seeders;

   use Illuminate\Database\Seeder;
   use App\Models\User;

   class DatabaseSeeder extends Seeder
   {
       public function run()
       {
           User::factory()->count(50)->create();
       }
   }
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ب. ایجاد داده های ساختگی برای آزمایش:

  • Seeder ایجاد داده های ساختگی را برای اهداف آزمایش و توسعه ویژگی آسان می کند. شما می توانید داده های واقع بینانه ای ایجاد کنید که برای اطمینان از عملکرد خوب ویژگی مورد نیاز است.
   // database/seeders/UserSeeder.php

   namespace Database\Seeders;

   use Illuminate\Database\Seeder;
   use App\Models\User;

   class UserSeeder extends Seeder
   {
       public function run()
       {
           User::factory()->count(10)->create();
       }
   }
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سی. مدیریت داده های آزمون ثابت:

  • Seeder به شما امکان می دهد داده های آزمایشی را در محیط های مختلف توسعه حفظ کنید. این به ویژه در تیم های توسعه مفید است تا اطمینان حاصل شود که همه داده های آزمایشی یکسانی دارند.
   php artisan db:seed --class=UserSeeder
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

D. پر کردن خودکار داده ها:

  • Seders را می توان به عنوان بخشی از فرآیند ساخت یا استقرار اجرا کرد و اطمینان حاصل کرد که پایگاه داده با داده های مورد نیاز در هر بار استقرار برنامه پر می شود.
   // Menjalankan semua seeder
   php artisan db:seed
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

E. توسعه ویژگی را آسان‌تر می‌کند:

  • با استفاده از Seders، می توانید به سرعت پایگاه داده خود را با داده های مورد نیاز برای توسعه و آزمایش ویژگی های جدید بدون نیاز به وارد کردن دستی داده ها پر کنید.
   // Seeder untuk posts
   namespace Database\Seeders;

   use Illuminate\Database\Seeder;
   use App\Models\Post;

   class PostSeeder extends Seeder
   {
       public function run()
       {
           Post::factory()->count(20)->create();
       }
   }
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نمونه ای از اجرای کاشت پایگاه داده

در زیر یک مثال کامل از استفاده از Database Seeding در لاراول آورده شده است:

آ. ساخت بذرپاشی:

   php artisan make:seeder UserSeeder
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ب. پر کردن Seder با داده ها:

   // database/seeders/UserSeeder.php

   namespace Database\Seeders;

   use Illuminate\Database\Seeder;
   use App\Models\User;

   class UserSeeder extends Seeder
   {
       public function run()
       {
           User::factory()->count(10)->create();
       }
   }
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سی. Running the Seader:

   php artisan db:seed --class=UserSeeder
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

D. افزودن Seeder به DatabaseSeeder:

   // database/seeders/DatabaseSeeder.php

   namespace Database\Seeders;

   use Illuminate\Database\Seeder;

   class DatabaseSeeder extends Seeder
   {
       public function run()
       {
           $this->call([
               UserSeeder::class,
               PostSeeder::class,
           ]);
       }
   }
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

E. اجرای All Seeder:

   php artisan db:seed
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استفاده با کارخانه های مدل

بذرها اغلب همراه با کارخانه های مدل استفاده می شوند تا به راحتی داده های ساختگی ایجاد کنند. در اینجا نحوه استفاده از آن آمده است:

آ. ایجاد کارخانه:

   php artisan make:factory UserFactory --model=User
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ب. تعریف کارخانه:

   // database/factories/UserFactory.php

   namespace Database\Factories;

   use App\Models\User;
   use Illuminate\Database\Eloquent\Factories\Factory;
   use Illuminate\Support\Str;

   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),
           ];
       }
   }
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سی. استفاده از Factory در Seder:

   // database/seeders/UserSeeder.php

   namespace Database\Seeders;

   use Illuminate\Database\Seeder;
   use App\Models\User;

   class UserSeeder extends Seeder
   {
       public function run()
       {
           User::factory()->count(10)->create();
       }
   }
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نتیجه

کاشت پایگاه داده در لاراول برای پر کردن پایگاه داده با داده های اولیه یا داده های ساختگی بسیار مفید است. با ارائه سریع و مداوم داده های لازم به توسعه و آزمایش برنامه کمک می کند. Seder خودکار ورود داده ها را فعال می کند، توسعه ویژگی ها را ساده می کند و داده های آزمایشی را در محیط های مختلف توسعه تضمین می کند. با استفاده از seders همراه با کارخانه های مدل، می توانید به راحتی داده های واقعی مورد نیاز برای آزمایش و توسعه ایجاد کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا