2013-10-11 18 views
8

एक माइग्रेशन सेट करने का प्रयास कर रहा है जो मेरे पहले से मौजूद "सक्रिय" फ़ील्ड को "1" का डिफ़ॉल्ट मान देगा। मुझे लगता है कि क्योंकि क्षेत्र पहले से मौजूद है,लार्वा स्कीमा बिल्डर अपडेट डिफ़ॉल्ट मान

$table->integer('active')->default(1); 

लेकिन मुझे कोई सफलता के साथ अपने प्रवास में यह करने की कोशिश की:

मैं देख रहा हूँ डॉक्स में मैं की तरह कुछ का उपयोग कर सकते हैं। स्कीमा निर्माता का उपयोग कर मौजूदा फ़ील्ड को सही तरीके से प्रबंधित करने का कोई तरीका है?

मेरे वर्तमान माइग्रेशन:

public function up() 
{ 
    Schema::table('scores', function($table){ 
     $table->integer('active')->default(1); 
    }); 
} 

संपादित करें:

से मैं अब तक क्या पढ़ा, इस क्वेरी बिल्डर के साथ नहीं किया जा सकता है। लेकिन जब मैं एक कच्चे क्वेरी चलाने के लिए प्रयास करें:

DB::query("ALTER TABLE `scores` CHANGE COLUMN `active` `active` int(11) NOT NULL DEFAULT '1';"); 

मैं एक "विधि 'जिज्ञासा' त्रुटि मौजूद नहीं है" हो रही है, इसलिए मैं अनुमान है कि इस विधि नाम मैं बदल गया था बस क्या नहीं मिल सकता है यह

उत्तर

12

में बदल गया था डीबी की तरह :: क्वेरी लग रहा है() डीबी में बदल गया था :: बयान()

यह चाल किया: चूंकि आप स्तंभ का नाम नहीं बदल रहे हैं

DB::statement("ALTER TABLE `scores` CHANGE COLUMN `active` `active` int(11) NOT NULL DEFAULT '1';"); 
+1

, चेंज कॉलम के बजाय आप संशोधित कॉलम का उपयोग कर सकते हैं और सेकेंड को छोड़ सकते हैं आपके कथन में सक्रिय है। नया कथन निम्नानुसार है: डीबी :: कथन ("वैकल्पिक तालिका संशोधित कॉलम सक्रिय int (11) नल डिफॉल्ट '1';"); 'stackoverflow.com/a/14767467/788445 – Jon

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