بخش اول - تعریف و اجرای Migrationها
در لاراول، Migrations یک سیستم برای مدیریت و ایجاد تغییرات در ساختار پایگاه داده است. این سیستم به توسعهدهندگان امکان میدهد تا جدولها، ستونها و روابط پایگاه داده را با استفاده از کد PHP تعریف، تغییر و مدیریت کنند. با استفاده از مایگریشن ها، تغییرات در پایگاه داده در کنار کد پروژه نگهداری میشود و میتوان آن را بهراحتی در محیطهای مختلف بهروزرسانی کرد.
اهداف و مزایای استفاده از مایگریشنها
1- مایگریشن ها به شما این امکان را میدهند که تغییرات پایگاه داده را با تغییرات کد هماهنگ کنید.
2- بهراحتی میتوانید تغییرات اعمال شده را به نسخه قبلی برگردانید.
3- وقتی توسعهدهندگان مختلف روی یک پروژه کار میکنند، میتوانند تغییرات پایگاه داده را بهصورت کنترلشده و منظم در بین خودشان به اشتراک بگذارند.
4- بهجای ویرایش دستی پایگاه داده، میتوانید از دستورات ساده برای افزودن یا تغییر جداول استفاده کنید.
ایجاد و اجرای مایگریشن
برای ایجاد مایگریشن جدید، میتوانید از دستور Artisan زیر استفاده کنید:
php artisan make:migration create_users_table --create=users
فلگ --create بیانگر این است که مایگریشن برای ساخت جدول جدید می باشد.
این دستور یک فایل مایگریشن جدید در پوشه database/migrations ایجاد میکند. در فایل مایگریشن معمولاً دو متد اصلی وجود دارد:
1- متد up
شامل دستوراتی برای ایجاد یا تغییر ساختار جدول (افزودن ستونها، روابط و غیره) است.
2- متد down
شامل دستوراتی برای بازگردانی تغییرات اعمالشده در متد up() است.
ساختار یک فایل مایگریشن
یک مایگریشن نمونه، به شکل زیر است:
return new class extends Migration
{
public function up(): void
{
Schema::create('flights', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('airline');
$table->timestamps();
});
}
public function down(): void
{
Schema::drop('flights');
}
};
اجرای مهاجرتها
برای اجرای مایگریشنها و اعمال تغییرات روی پایگاه داده از دستور زیر استفاده میشود:
php artisan migrate
این دستور تمامی مایگریشنهایی که هنوز اجرا نشدهاند را اعمال میکند. برای بازگرداندن آخرین سری از تغییرات میتوانید از دستور زیر استفاده کنید:
php artisan migrate:rollback
برای بازگرداندن تمامی تغییرات و شروع از ابتدا:
php artisan migrate:reset
سایر دستورات در پست مربوطه توضیح داده می شود.
تغییرات در جداول موجود
اگر بخواهید تغییراتی در جداول موجود اعمال کنید، باید از مایگریشن جدیدی استفاده کنید. مثلاً برای افزودن ستون به جدول users میتوانید از دستور زیر بهره ببرید:
php artisan make:migration add_phone_to_users_table --table=users
فلگ --table بیانگر این است که مایگریشن برای ویرایش جدول موجود می باشد.
سپس در فایل مایگریشن ایجادشده میتوانید تغییرات خود را اعمال کنید.
اصول نامگذاری مایگریشنها
انتخاب نامهای مناسب برای مایگریشنها از اهمیت ویژهای برخوردار است، زیرا نه تنها باعث خوانایی و شفافیت کد میشود، بلکه به وضوح نقش و وظیفهی هر مایگریشن را مشخص میکند. لاراول از نام فایلها و کلاسهای مایگریشن برای سازماندهی و اجرای صحیح آنها استفاده میکند.
1- نام مایگریشن باید عملی که انجام میدهد را توصیف کند. به عنوان مثال:
create_users_table
add_email_to_users_table
remove_phone_from_users_table
update_orders_status
2- نام مایگریشن معمولاً با فعلی که عمل اصلی را توصیف میکند شروع میشود، سپس به اسم جدول یا ستون مورد نظر اشاره میکند. این قالب باعث شفافیت بیشتر میشود و به راحتی میتوان فهمید که مایگریشن چه کاری انجام میدهد.
3- هنگام اشاره به جداول، معمولاً از نامهای جمع استفاده میشود. برای مثال، مایگریشن مربوط به جدول کاربران به صورت create_users_table نامگذاری میشود و نه create_user_table.
4- سعی کنید از نامهای طولانی و زائد پرهیز کنید. نامها باید توصیفی و مختصر باشند. برای مثال، به جای add_new_email_column_to_users_table میتوانید از add_email_to_users_table استفاده کنید.
5- برای نامگذاری فایلها و کلاسهای مایگریشن از قالب snake_case استفاده میشود، که بین کلمات از خط زیرین _ استفاده میکند. این قالب بهطور پیشفرض توسط دستور php artisan make:migration رعایت میشود.
در قسمت بعدی با متد های ساخت جداول به وسیله ی مایگریشن ها آشنا می شویم.
▫️ 🟠
🔎 #laravel #لاراول #فصل_۵
💠 @AmirhDeveloper
.