كيفية التعامل مع الجداول التي تحتوي علي 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
كما تريد
بالتوفيق للجميع
فريق عمل خدمات ويب
لا يوجد تعليقات حتي الان