تکنولوژی نوین اینترنتی
Migrations ابزارهایی در لاراول هستند که برای مدیریت ساختار دیتابیس بهصورت کدنویسی طراحی شدهاند. بهوسیله Migrations میتوان تغییرات ساختار دیتابیس را به راحتی ساخت، اعمال، و بازگرداند بدون نیاز به دستکاری مستقیم پایگاه داده.
هدف اصلی Migrations اینه که همتیمیها بتونن تغییرات در دیتابیس رو بهراحتی اعمال و همگامسازی کنند.
برای ساخت یک Migration از دستور زیر استفاده میکنیم:
این دستور یک فایل مایگریشن در پوشه database/migrations
ایجاد میکند.
در فایل مایگریشنی که بهتازگی ایجاد شده، میتوانید ساختار جدول خود را تعریف کنید. مثلاً برای ایجاد جدول users
:
در قسمت up()
جداول و ستونهای جدید ایجاد میشود و در قسمت down()
تغییرات برگردانده میشود.
لاراول انواع مختلفی از ستونها رو برای جداول دیتابیس فراهم میکنه:
string()
, text()
, integer()
, boolean()
, date()
, float()
, foreignId()
بعد از ایجاد مایگریشن، برای اعمال تغییرات در دیتابیس از دستور زیر استفاده میکنیم:
این دستور تمام مایگریشنهایی که هنوز در دیتابیس اعمال نشدهاند رو اجرا میکند.
اگر به هر دلیلی بخواهید تغییرات مایگریشنها رو لغو کنید، میتوانید از دستور زیر استفاده کنید:
برای بازگرداندن همهی تغییرات و بازگشت به وضعیت اولیه، میتوانید از این دستور استفاده کنید:
و برای انجام مجدد همهی مایگریشنها، این دستور رو اجرا کنید:
یکی از ویژگیهای پرکاربرد Migrations در لاراول ایجاد رابطههای Foreign Key است.
مثال از ایجاد جدول posts
که به جدول users
مرتبط است:
در اینجا:
foreignId('user_id')
: ایجاد ستون user_id
بهعنوان کلید خارجی.
constrained()
: بهطور خودکار به ستون id
جدول users
مرتبط میشود.
onDelete('cascade')
: اگر یک رکورد از جدول users
حذف شود، تمام پستهای مرتبط با آن هم حذف میشوند.
استفاده از نامگذاری مناسب: هنگام ایجاد مایگریشنها، از نامهایی استفاده کنید که برای تیم توسعهدهنده معنیدار باشد، مثلاً create_posts_table
یا add_status_to_users_table
.
امکان اجرای همزمان مایگریشنها: لاراول از قابلیت batch
برای اجرای چندین مایگریشن در یک لحظه پشتیبانی میکند.
استفاده از nullable()
, default()
, unique()
برای ویژگیهای بیشتر ستونها:
nullable()
: ستونی که میتونه مقدار null داشته باشه.
default()
: مقدار پیشفرض برای ستون.
unique()
: اطمینان از اینکه مقادیر در ستون یکتا هستند.
هنگام بازگشت از Migration از dropIfExists()
استفاده کنید: این روش از خطاهای احتمالی جلوگیری میکند.
php artisan migrate
: اجرای تمام مایگریشنهای جدید
php artisan migrate:rollback
: بازگشت به وضعیت قبل از آخرین مایگریشن
php artisan migrate:reset
: بازگشت به وضعیت اولیه (تمام مایگریشنها برگردانده میشوند)
php artisan migrate:refresh
: دوباره اجرای تمام مایگریشنها (برای اعمال تغییرات جدید)
php artisan migrate:status
: مشاهده وضعیت فعلی مایگریشنها
Migrations ابزار قدرتمندی در لاراول هستند که به شما این امکان را میدهند تا ساختار دیتابیس خود را بهصورت نسخهبندی شده و بهراحتی مدیریت کنید. با استفاده از مایگریشنها میتوانید جداول جدید بسازید، روابط بین آنها را تعریف کنید و تغییرات را بهراحتی اعمال یا بازگردانی کنید.