پایگاه داده: 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 همراه با کارخانه های مدل، می توانید به راحتی داده های واقعی مورد نیاز برای آزمایش و توسعه ایجاد کنید.