مارک پلاس

تکنولوژی نوین اینترنتی

Migrations لاراول

دسته‌بندی‌ها

Migrations لاراول

🛠️ Migrations در لاراول


📌 مدیریت ساختار دیتابیس به‌صورت کدنویسی


🧠 Migrations چیست؟

Migrations ابزارهایی در لاراول هستند که برای مدیریت ساختار دیتابیس به‌صورت کدنویسی طراحی شده‌اند. به‌وسیله Migrations می‌توان تغییرات ساختار دیتابیس را به راحتی ساخت، اعمال، و بازگرداند بدون نیاز به دستکاری مستقیم پایگاه داده.

هدف اصلی Migrations اینه که هم‌تیمی‌ها بتونن تغییرات در دیتابیس رو به‌راحتی اعمال و همگام‌سازی کنند.


🔧 ایجاد و اجرای Migration

۱. ساخت مایگریشن جدید:

برای ساخت یک Migration از دستور زیر استفاده می‌کنیم:

bash
php artisan make:migration create_users_table

این دستور یک فایل مایگریشن در پوشه database/migrations ایجاد می‌کند.

۲. ویرایش فایل Migration

در فایل مایگریشنی که به‌تازگی ایجاد شده، می‌توانید ساختار جدول خود را تعریف کنید. مثلاً برای ایجاد جدول users:

php
public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('users'); }

در قسمت up() جداول و ستون‌های جدید ایجاد می‌شود و در قسمت down() تغییرات برگردانده می‌شود.


🧳 استفاده از انواع ستون‌ها

لاراول انواع مختلفی از ستون‌ها رو برای جداول دیتابیس فراهم می‌کنه:

php
$table->id(); // کلید اصلی (Auto Increment) $table->string('name'); // رشته $table->integer('age'); // عدد صحیح $table->boolean('is_active');// مقدار بولی $table->timestamps(); // created_at و updated_at $table->foreignId('user_id');// کلید خارجی

انواع داده‌های پرکاربرد:

  • string(), text(), integer(), boolean(), date(), float(), foreignId()


🔄 اجرای Migration

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

bash
php artisan migrate

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


🛑 بازگرداندن Migration

اگر به هر دلیلی بخواهید تغییرات مایگریشن‌ها رو لغو کنید، می‌توانید از دستور زیر استفاده کنید:

bash
php artisan migrate:rollback

برای بازگرداندن همه‌ی تغییرات و بازگشت به وضعیت اولیه، می‌توانید از این دستور استفاده کنید:

bash
php artisan migrate:reset

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

bash
php artisan migrate:refresh

🔧 ایجاد جدول با کلید خارجی

یکی از ویژگی‌های پرکاربرد Migrations در لاراول ایجاد رابطه‌های Foreign Key است.

مثال از ایجاد جدول posts که به جدول users مرتبط است:

php
Schema::create('posts', function (Blueprint $table) { $table->id(); $table->foreignId('user_id')->constrained()->onDelete('cascade'); $table->string('title'); $table->text('content'); $table->timestamps(); });

در اینجا:

  • foreignId('user_id'): ایجاد ستون user_id به‌عنوان کلید خارجی.

  • constrained(): به‌طور خودکار به ستون id جدول users مرتبط می‌شود.

  • onDelete('cascade'): اگر یک رکورد از جدول users حذف شود، تمام پست‌های مرتبط با آن هم حذف می‌شوند.


🧑‍💻 چند نکته در کار با Migrations

  1. استفاده از نامگذاری مناسب: هنگام ایجاد مایگریشن‌ها، از نام‌هایی استفاده کنید که برای تیم توسعه‌دهنده معنی‌دار باشد، مثلاً create_posts_table یا add_status_to_users_table.

  2. امکان اجرای همزمان مایگریشن‌ها: لاراول از قابلیت batch برای اجرای چندین مایگریشن در یک لحظه پشتیبانی می‌کند.

  3. استفاده از nullable(), default(), unique() برای ویژگی‌های بیشتر ستون‌ها:

    • nullable(): ستونی که می‌تونه مقدار null داشته باشه.

    • default(): مقدار پیش‌فرض برای ستون.

    • unique(): اطمینان از اینکه مقادیر در ستون یکتا هستند.

  4. هنگام بازگشت از Migration از dropIfExists() استفاده کنید: این روش از خطاهای احتمالی جلوگیری می‌کند.


🔧 دستورات مهم Migrations

  • php artisan migrate: اجرای تمام مایگریشن‌های جدید

  • php artisan migrate:rollback: بازگشت به وضعیت قبل از آخرین مایگریشن

  • php artisan migrate:reset: بازگشت به وضعیت اولیه (تمام مایگریشن‌ها برگردانده می‌شوند)

  • php artisan migrate:refresh: دوباره اجرای تمام مایگریشن‌ها (برای اعمال تغییرات جدید)

  • php artisan migrate:status: مشاهده وضعیت فعلی مایگریشن‌ها


✅ جمع‌بندی

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

محتوای مرتبط

پست‌های مرتبط