2012-12-10 13 views
16

मेरे पास दो फ़ील्ड हैं जिन्हें मुझे चरित्र सीमा बढ़ाने की आवश्यकता है। मैंने प्रलेखन के माध्यम से पढ़ा है और मेरे आश्चर्य के लिए मुझे इसके लिए कोई विकल्प नहीं मिला। यह करना संभव है? यदि नहीं, तो मुझे इसे हल करने के लिए कैसे जाना चाहिए?स्कीमा निर्माता में कॉलम की लंबाई बदलें?

मैं कॉलम छोड़ सकता हूं और इसे सही गुणों के साथ फिर से बना सकता हूं, लेकिन मैं डेटाबेस में कोई भी डेटा खोना नहीं चाहता हूं।

उत्तर

20

उपयोग Raw Queries:

/** 
* Make changes to the database. 
* 
* @return void 
*/ 
public function up() 
{ 
    DB::query('alter table MYTABLE modify MYCOLUMN varchar(new-length)'); 
} 

/** 
* Revert the changes to the database. 
* 
* @return void 
*/ 
public function down() 
{ 
    DB::query('alter table MYTABLE modify MYCOLUMN varchar(old-length)'); 
} 

MYTABLE, MYCOLUMN, new-length और old-length बदलें।

+0

यह सही है, धन्यवाद! – qwerty

+0

यह लार्वेल में काम करता है 3. – killlinuxkill

+0

लार्वेल 5.1 में, मुझे डीबी :: क्वेरी को डीबी :: कथन में बदलना पड़ा। – Waqas

1

नाम के लिए कॉलम नाम के लिए `` का उपयोग करें यदि नाम सिस्टम के लिए एक कीवर्ड है। अन्यथा आपको "सिंटेक्स त्रुटि या पहुंच उल्लंघन" मिलेगा।

DB::query("alter table MYTABLE modify `MYCOLUMN` varchar(new-length)"); 
26

Laravel 4

DB::update('ALTER TABLE `my_table` MODIFY `my_column` VARCHAR(<new length>)'); 
+0

मैं लार्वेल 4 में नया हूं ... मैं उस अद्यतन कार्य को कैसे चला सकता हूं? – roadev

16

Laravel 5 के लिए: अधिक जानकारी के लिए

Schema::table('users', function($table) 
{ 
    $table->string('name', 50)->change(); 
}); 

चेक docs

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