2017-01-31 6 views
12

के बजाय अपरकेस तालिका नाम की तलाश में है, मेरे पास यह टेबल मेरे स्थानीय xampp पर है, तालिका का नाम tags है, यह मेरे स्थानीय सिस्टम पर पूरी तरह से ठीक काम करता है, लेकिन जब मैं अपने सर्वर पर यह तालिका अपलोड करता हूं I अनुसरण कर रहे हैंसर्वर पर मेरा एप्लिकेशन लोअरकेस

enter image description here

टेबल मैं मेज peckinga_blog के तहत है: निम्न त्रुटि प्राप्त

enter image description here

आप कर सकते हैं के रूप में

<?php 

use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreateTagsTable extends Migration 
{ 
    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::create('Tags', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->mediumText('tag'); 
     }); 
    } 

    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::drop('Tags'); 
    } 
} 

अब कारण है कि मैं यह मेरा डेटाबेस स्पष्ट रूप से उपलब्ध होने के बावजूद इस त्रुटि हो रही है: देखने tagstags तालिका मैं अपने laravel एप्लिकेशन में निम्नलिखित को माइग्रेशन के लिए इसके अलावा उनमें से एक है,? मैं क्या कर सकता हूं ताकि मेरा सर्वर डेटाबेस tagsTags के बजाय डेटाबेस की तलाश करेगा?

+2

अपने कोड में "टैग" के सभी उदाहरणों को "टैग" – nogad

+1

में बदलें टैग से टैग में बदलें? या टैग से टैग तक डीबी में अपना टैबलेटनाम बदलें? – Kaylined

+0

यदि मैं phpmyadmin में 'टैग'' टैग का नाम बदलता हूं, तो मुझे एक त्रुटि मिलती है जो 'टैग' पहले से मौजूद है। –

उत्तर

8

मैं अपने कोड में निम्न पंक्ति था:

$tags = DB::table('Tags')->get(); 

मेरी खिड़कियां XAMPP पर स्थानीय रूप से पूरी तरह से काम किया, लेकिन करने के लिए इसे बदलने के लिए की जरूरत:

$tags = DB::table('tags')->get(); 

मेरे सर्वर पर काम करने के लिए।

+4

विंडोज फाइल सिस्टम केस असंवेदनशील है, लिनक्स फ़ाइलस्टेम्स नहीं हैं। मुझे लगता है कि आप कुछ WindowsDev करते हैं और इसलिए पास्कल मामले में उपयोग किया जाता है? –

+0

@ रिचर्डवैनबर्गन हां :) :) –

+2

मैं अगली बार आपके बक्षीस के साथ थोड़ा सावधान रहूंगा क्योंकि मैं यह जवाब देने जा रहा था लेकिन आप ने बक्षीस के ऊपर स्वयं जवाब दिया था। –

5

केस संवेदनशीलता आपके अंतर्निहित फाइल सिस्टम पर निर्भर करती है, जो आपके स्थानीय और उत्पादन मशीन के बीच विसंगति को बताती है।

चूंकि यह एक आम समस्या है, इसलिए मैं एक सम्मेलन के रूप में लोअरकेस के अलावा उपयोग करने की सलाह दूंगा। अपने माइग्रेशन में और model में अपने Tags से tags और अपने जाने के लिए भी अच्छा होना चाहिए।

यदि आपको अपनी तालिका का नाम बदलने की आवश्यकता है, तो इसे पहले something_else पर नाम दें, और फिर से tags पर पुनर्नामित करें।

11

डेटाबेस और तालिका नाम विंडोज में केस संवेदनशील नहीं हैं, और यूनिक्स या लिनक्स की अधिकांश किस्मों में केस संवेदनशील हैं। MySQL में तालिका नाम फ़ाइल सिस्टम प्रविष्टियां हैं, इसलिए यदि अंतर्निहित फ़ाइल सिस्टम है तो वे केस असंवेदनशील हैं।

हालांकि प्रवास को लागू करने के बाद, यह काम करना चाहिए लेकिन मामले में यह काम नहीं कर रहा है और आप दोनों कथनों छोटे अक्षर और अपर केस नाम यानी तालिका में सफल होना चाहते हैं, तो आप निम्न पंक्ति लगाने की जरूरत है

lower_case_table_names = 1

अपने /etc/my.cnf में या जहां भी आप अपना MySQL कॉन्फ़िगरेशन रखते हैं।

सिद्धांत उत्पन्न पूंजी/कैमलकेस तालिका के नाम और MySQL उन्हें लोअरकेस के रूप में संग्रहीत करते हैं!

या

  1. निर्यात करने से पहले स्थानीय से डेटाबेस आप इन चरणों कर सकते हैं: [ड्राइव] \ XAMPP \ mysql \ बिन \ मेरी:

  2. अपने MySQL विन्यास फ़ाइल खोलें।आरं

  3. के लिए ऊपर देखो: # MySQL सर्वर [mysqld]

  4. यह नीचे यह अधिकार जोड़ें: lower_case_table_names = 2

  5. फ़ाइल को सहेजने और MySQL सेवा को पुनः आरंभ

कॉन्फ़िगरेशन फ़ाइल के [mysqld] अनुभाग में सिस्टम वैरिएबल को जोड़ना सुनिश्चित करें।

अधिक जानकारी के लिए आप MySQL Reference Link देख सकते हैं।

संबंधित मुद्दे