اذهب إلى المحتوى
  • 0

إضافة عمود جديد في جدول بيانات بدون فقدان البيانات الحالية في الجدول بإستخدام Laravel

Mahmoud Alrashidi

السؤال

Recommended Posts

  • 0

بإمكانك إستخدام أمر إنشاء ملف تهجير فملفات التهجير ليست مُخصصة فقط لإنشاء الجداول و إنما تُمكنك أيضاً من إضافة عمود جديد لجدول بيانات أيضاً.

لنفترض أننا نريد إضافة عمود age للجدول users فيتم ذلك عن طريق الأمر التالي:

php artisan make:migration add_age_to_users_table

هذا الأمر سيُنشئ لنا ملف migration جديد و سيحتوي على الصنف التالي:

class AddAgeToUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            
        });
    }
}

الآن نقوم بإضافة العمود في الدالة up و من خلال الدالة down نقوم بحذفه كما هو موضح أدناه:

<?php

public function up()
{
  Schema::table('users', function (Blueprint $table) {
    $table->unsignedTinyInteger('age')->nullable()->after('username');
  });
}

و هذا يعني أننا نريد إضافة العمود age على أنه unsignedTinyInteger إضافة الى أنه سيكون فارغ إفتراضياً و سيُضاف بعد العمود username.

أما الدالة down ستكون بهذا الشكل:

<?php

public function down()
{
  Schema::table('users', function (Blueprint $table) {
    $table->dropColumn('age');
  });
}

و بالتالي كل ما عليك الآن هو تنفيذ امر التهجير:

php artisan migrate

هذا الأمر سيُنفذ الدالة up و يُضيف العمود الجديد.

أما الدالة down يتم تنفيذها عند تنفيذ أمر rollback الذي سيحذف العمود age.

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...