2016-02-17 19 views
12

मैं तालिका बनाने के लिए स्कीमा बिल्डर में नीचे दिए गए कोड का उपयोग कर रहा हूं।स्कीमा बिल्डर: यदि तालिका मौजूद नहीं है तो तालिका बनाएं

Schema::create('tblCategory', function (Blueprint $table) { 
    $table->increments('CategoryID'); 
    $table->string('Category', 40); 
    $table->unique('Category', 'tblCategory_UK_Category'); 
    $table->timestamps(); 
}); 

यहाँ सभी पुराने स्क्रिप्ट चलाता है और शो त्रुटि है कि तालिका पहले से मौजूद है, समस्या यह है, अगर मैं नई तालिका बनाने के लिए है।

स्कीमा निर्माता का उपयोग करके मौजूद नहीं होने पर टेबल बनाने का कोई तरीका है?

+0

क्या आप माइग्रेशन टूल में निर्मित लार्वाल्स का भी उपयोग कर रहे हैं? – Morten

+0

हां, 5.2.15 संस्करण। – Pankaj

+0

और आप 'php artisan migrate' चलाते हैं? अगर फ़ाइल सफलतापूर्वक चलती है, तो उसे डेटाबेस में स्टोर करना चाहिए ताकि यह फ़ाइल को फिर से चलाएगा – Morten

उत्तर

25

इस

if (!Schema::hasTable('tblCategory')) { 
    // create the tblCategory table 
} 
+2

आप भी कर सकते हैं अगर (स्कीमा :: हैटेबल ('tblCategory')) {वापसी; } इसके बजाय इसे जोड़ने से पहले। –

2

Please check the answer here

एक नई तालिका केवल एक Laravel स्कीमा समारोह hasTable द्वारा जांच होती है बनाने के लिए प्रयास करें।

लेकिन यदि आप अपने अस्तित्व की जांच करने से पहले किसी भी तालिका को छोड़ना चाहते हैं तो स्कीमा के पास dropIfExists नामक एक फ़ंक्शन है।

Schema::dropIfExists('table_name'); 

तालिका मौजूद होने पर यह तालिका छोड़ देगा।

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