دستورات مفید مربوط به migration در لاارول

php artisan migrate

این دستور برای اجرای تمام مایگریشن‌های اجرا نشده کاربر دارد.

php artisan make:migration create_posts_table

دستور بالا می‌گوید که یک جدول با نام posts ایجاد شود.

php artisan migrate:rollback

در صورتی که به هر دلیل قصد داشته باشیم یک مرحله به عقب برگردیم، از دستور rollback استفاده می‌کنیم.

php artisan migrate:rollback --step=2

اگر قصد داشته باشیم بیش از یک مرحله به قبل برگردیم، با استفاده از سوئیچ step، تعداد مراحل مورد نظر را مشخص و به همان تعداد rollback انجام می‌دهیم.

php artisan make:migration add_user_id_to_posts

در مثال بالا فرض بر این است جدولی ایجاد کرده و قصد داریم یک فیلد به آن اضافه کنیم تا اطلاعات موجود در جدول از بین نرود. در این حالت می‌توانیم از دستوری مشابه دستور فوق استفاده کنیم. دستور بالا می‌گوید که به جدول posts یک فیلد به نام user_id اضافه کن.

حالا فرض می‌گیریم که فیلد user_id افزوده و مایگریشن نظیر آن نیز ایجاد شده است. به صورت پیش‌فرض این فیلد در انتهای سایر فیلدها قرار خواهد گرفت. اما اگر قصد داشته باشیم جایگاه آن مشخص شود، به صورت زیر عمل می‌کنیم و در فایل مایگریشن مربوطه کد زیر را می‌نویسیم. یعنی فیلد user_id را بعد از فیلد id ایجاد کن.

$table->integer('user_id')->after('id');

در نهایت نیز برای ایجاد فیلد (فیلدهای) جدید یا به عبارتی تغییرات جدید، کافی است دستور زیر را اجرا کنیم:

php artisan migrate

اما چطور کلید خارجی یا همان foreign key ایجاد کنیم؟ پاسخ ساده است. به صورت زیر:

$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

کد بالا می‌گوید که یک فیلد با عنوان user_id که کلید خارجی برای id از جدول users است ایجاد کن و در صورتی که کلید اصلی که همان id است به هر دلیلی حذف شد، رکوردهای دارای user_id متناظر را نیز حذف کن.

درباره نویسنده: احسان

مطالب زیر را حتما بخوانید