مهاجرت و بذر
معرفی
مهاجرت ها نوعی کنترل نسخه برای پایگاه داده شما هستند. آنها به یک تیم اجازه می دهند تا طرح پایگاه داده را اصلاح کنند و از وضعیت فعلی طرحواره به روز بمانند. مهاجرت ها معمولاً با 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