MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

Laravel:निर्दिष्ट कुंजी बहुत लंबी थी; अधिकतम कुंजी लंबाई 767 बाइट्स है

समस्या:"निर्दिष्ट कुंजी बहुत लंबी थी; अधिकतम कुंजी लंबाई 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 आपका दोस्त है 💪️


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में लाइक ऑपरेटर कैसे काम करता है?

  2. कठपुतली के साथ डेटाबेस स्वचालन:MySQL और मारियाडीबी गैलेरा क्लस्टर की तैनाती

  3. कैसे REGEXP_INSTR () मारियाडीबी में काम करता है

  4. मारियाडीबी में डेटाटाइम वैल्यू से सेकेंड घटाएं

  5. मारियाडीबी टेम्पोरल टेबल्स क्या हैं?