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