समस्या:"निर्दिष्ट कुंजी बहुत लंबी थी; अधिकतम कुंजी लंबाई 767 बाइट्स है"
इन मुद्दों में से एक आप PHP ढांचे Laravel का उपयोग करके ठोकर खा सकते हैं यह एक है:
Specified key was too long; max key length is 767 bytes
कुछ शोध के बाद, मुझे पता चला है कि यह MySQL के पुराने संस्करणों (5.7.8 से पहले) या मारियाडीबी (10.2.2 से पहले) का उपयोग करते समय आ रहा है। यह मेरे मामले में मारियाडीबी था।
समाधान #1:
Laravel में इसे केवल आपके ऐप सेवा प्रदाता कॉन्फ़िगरेशन को बदलकर हल किया जा सकता है (app/Providers/AppServiceProvider.php
में) ) निम्नलिखित के साथ:
use Illuminate\Support\Facades\Schema;
public function boot()
{
/**
* Ensure we aren't running into `Specified key was too long; max key length is 767 bytes`
*
* @see https://peterthaleikis.com/posts/laravel:-specified-key-was-too-long-max-key-length-is-767-bytes/
**/
Schema::defaultStringLength(191);
}
इसके बाद आपको php artisan migrate:fresh --seed
. का उपयोग करके अपने डेटाबेस को फिर से बनाना पड़ सकता है - यह आपके डेटाबेस को पूरी तरह से रीसेट कर देगा और नए सिरे से शुरू होगा।
समाधान #2:
आप अपने डेटाबेस सर्वर को अपग्रेड भी कर सकते हैं। यहां इसकी चर्चा नहीं की गई है क्योंकि यह बहुत सिस्टम-विशिष्ट है। DuckDuckGo आपका दोस्त है 💪️