كيفية التعامل مع الجداول التي تحتوي علي Constraints من خلال migration

كيفية التعامل مع الجداول التي تحتوي علي Constraints من خلال migration


بسم الله الرحمن الرحيم 

 

من المعروف عند عمل علاقة بين جدولين يتم 

فرض قيود علي الجدولين بحيث لوتم مسح اي دتا مرتبطة بين الجدولين 

يتم حذف الدتا المقيدة بها في الجدول الاخر 

في اثناء العمل علي المشروع بشكل محلي يمثل هذا عائق كبير 

بفرض مثلا انك تريد تفريغ جدول الصلاحيات بالكامل 

وهذا الجدول مرتبط بجدول المجموعات مثلا فلن تستطيع لانه يوجد قيود بين الجدولين بسبب العلاقة 

كيف يمكن حل هذة المشكلة 

يمكنك بكل بساطة الغاء عمل القيود لحين تفريغ الدتا من الجدول وبعد ذلك يمكنك 

ارجاع عملها 

يمكنك الغاء العمل بالقيود عن طريق الامر التالي 

Schema::disableForeignKeyConstraints();

ثم قم بتنفيذ ما تريد فرضا اننا نريد ان نقوم بحذف الدتا الموجودة في جدول الصلاحيات 

DB::table('permissions')->truncate();

ثم الان نريد ان نقوم بارجاع القيود مرة اخري من اجل عمل العلاقات بشكل جيد

Schema::enableForeignKeyConstraints();

فيصبح الكود كالتالي 

Schema::disableForeignKeyConstraints();
DB::table('permissions')->truncate();
Schema::enableForeignKeyConstraints();

لا تنسي ان تدرج الكلاسات الخاصة ب 

DB , shema

في اعلي الملف كالتالي 

use Illuminate\Support\Facades\Schema;
use DB;

يمكن تنفيذ الاوامر التالي في 

migration , seeder , controller

كما تريد 

بالتوفيق للجميع 

فريق عمل خدمات ويب

 



0 التعليقات


    لا يوجد تعليقات حتي الان

اضف تعليق


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

خدمات ويب الفريق