نسخه:

مهاجرت و بذر

معرفی

مهاجرت ها نوعی کنترل نسخه برای پایگاه داده شما هستند. آنها به یک تیم اجازه می دهند تا طرح پایگاه داده را اصلاح کنند و از وضعیت فعلی طرحواره به روز بمانند. مهاجرت ها معمولاً با Schema Builder جفت می شوند تا به راحتی طرحواره برنامه شما را مدیریت کنند.

ایجاد مهاجرت

برای ایجاد یک مهاجرت، می توانید از make:migration دستور روی Artisan CLI استفاده کنید:

php artisan make:migration create_users_table

انتقال در database/migrations پوشه شما قرار می گیرد و حاوی یک مهر زمانی است که به چارچوب اجازه می دهد ترتیب مهاجرت ها را تعیین کند.

گزینه های --table و --create همچنین ممکن است برای نشان دادن نام جدول و اینکه آیا مهاجرت یک جدول جدید ایجاد می کند استفاده شود:

php artisan make:migration add_votes_to_users_table --table=users
 
php artisan make:migration create_users_table --create=users

در حال اجرا مهاجرت

اجرای همه مهاجرت های برجسته

php artisan migrate

توجه: اگر هنگام اجرای migrations با خطای "class not found" مواجه شدید، composer dump-autoload دستور را اجرا کنید.

مهاجرت اجباری در تولید

برخی از عملیات مهاجرت مخرب هستند، به این معنی که ممکن است باعث از دست دادن اطلاعات شما شوند. به منظور محافظت از شما در برابر اجرای این دستورات در برابر پایگاه داده تولید شما، قبل از اجرای این دستورات، از شما خواسته می شود تا تأیید کنید. برای اجبار دستورات برای اجرا بدون اعلان، از --force پرچم استفاده کنید:

php artisan migrate --force

بازگشت به عقب مهاجرت

بازگشت آخرین عملیات مهاجرت

php artisan migrate:rollback

بازگرداندن همه مهاجرت ها

php artisan migrate:reset

همه مهاجرت ها را برگردانید و دوباره همه آنها را اجرا کنید

php artisan migrate:refresh
 
php artisan migrate:refresh --seed

بذریابی پایگاه داده

لاراول همچنین شامل یک راه ساده برای دانه بندی پایگاه داده شما با داده های آزمایشی با استفاده از کلاس های seed است. همه طبقات بذر در ذخیره می شوند database/seeds . کلاس‌های Seed ممکن است هر نامی که شما می‌خواهید داشته باشند، اما احتمالاً باید از یک قرارداد معقول مانند UserTableSeeder و غیره پیروی کنند. به طور پیش‌فرض، یک DatabaseSeeder کلاس برای شما تعریف شده است. از این کلاس، می‌توانید از call روش برای اجرای سایر کلاس‌های seed استفاده کنید که به شما امکان می‌دهد ترتیب دانه‌بندی را کنترل کنید.

نمونه کلاس بذر پایگاه داده

class DatabaseSeeder extends Seeder {
 
public function run()
{
$this->call('UserTableSeeder');
 
$this->command->info('User table seeded!');
}
 
}
 
class UserTableSeeder extends Seeder {
 
public function run()
{
DB::table('users')->delete();
 
User::create(['email' => 'foo@bar.com']);
}
 
}

برای مشاهده پایگاه داده خود، می توانید db:seed از دستور Artisan CLI استفاده کنید:

php artisan db:seed

به‌طور پیش‌فرض، db:seed دستور کلاس را اجرا می‌کند DatabaseSeeder ، که ممکن است برای فراخوانی کلاس‌های seed دیگر استفاده شود. با این حال، می توانید از این --class گزینه برای تعیین یک کلاس seder خاص برای اجرای جداگانه استفاده کنید:

php artisan db:seed --class=UserTableSeeder

همچنین می‌توانید پایگاه داده خود را با استفاده از migrate:refresh دستوری که به عقب برمی‌گردد و همه مهاجرت‌های شما را مجدداً اجرا می‌کند، مشاهده کنید:

php artisan migrate:refresh --seed