Hafsa Aly نشر 15 يونيو 2022 أرسل تقرير نشر 15 يونيو 2022 لااعرف ماذا يقصد ب max key length ولماذا ظهر معي هذ االخطا ع الرغم من انه كان يعمل معي بصورة طبيعية Laravel Migration Error: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes صورة الخطأ 1 اقتباس
0 Wael Aljamal نشر 15 يونيو 2022 أرسل تقرير نشر 15 يونيو 2022 سبب المشكلة هو تحديد طول افتراضي لحقل الإيميل بشكل كبير، فهذا يؤثر على عمل الفهرسة و اختبار تكرار السلاسل النصية للبريد الإلكتروني عند إضافة بريد جديد خاصة مع إضافة القيد unique لمنع التكرار (البحث ضمن القاعدة يأخذ وقتاً ونريد تقليله قدر الإمكان) وهذا يعمل فهرسة لقاعدة البيانات و زيادة الحجم غير محبذة و يسبب بطئ في عملية المعالجة.. حيث أن الفهارس يفترض أن تزيد سرعة المعالجة وليس تقليلها. يمكن لأي تعديل في المشروع أن يظهر أخطاء جديد لأن الكثير من الأمور مرتبطة ببعضها، لا مشكلة بذلك يمكن حل المشكلة في تعديل الملف بزيادة الطول المسموح للنوع String /app/Providers/AppServiceProvider.php نضيف التضمين التالي: use Illuminate\Support\Facades\Schema; وضمن دالة boot: public function boot() { Schema::defaultStringLength(191); } ثم يمكنك إعادة عمل التهجير و بذر البيانات. كما يوجد حلول أخرى يمكنك البحث عن رسالة الخطأ وتجريبها. من هذه الحلول تغيير ترميز البيانات ل utf8 config/database.php نعدل 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', to 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', أو تعديل محرك قواعد البيانات: config/database.php تبديل 'engine' => null', مع 'engine' => 'InnoDB ROW_FORMAT=DYNAMIC', ثم للحلين السابقين تنفيذ الأمر php artisan config:cache لسبب تعديل ملف ضمن الإعدادات config. والتوثيق الرسمي يشرح نفس الحل من: laravel migrations creating-indexes اقتباس
السؤال
Hafsa Aly
لااعرف ماذا يقصد ب max key length ولماذا ظهر معي هذ االخطا ع الرغم من انه كان يعمل معي بصورة طبيعية
Laravel Migration Error: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
صورة الخطأ
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.