2016-06-09 12 views
10

पर कॉलम प्रकार को बदलता है मुझे $table->string('text'); के माइग्रेशन कॉलम प्रकार के साथ टेक्स्ट प्रकार में बदलने की ज़रूरत है, मैंने इसे कुछ तरीकों से करने की कोशिश की है, लेकिन उनमें से कोई भी काम नहीं करता है। क्या यह एक प्रवासन में करना संभव है। मैं अनुमान लगा सकता हूं कि कॉलम ड्रॉप करें और फिर इसे नए प्रकार के साथ फिर से बनाएं, लेकिन मुझे आश्चर्य है कि एक माइग्रेशन में ऐसा करना संभव है?लार्वा माइग्रेशन वर्चर्स से लांगटेक्स्ट

उत्तर

12

हाँ, आप नया माइग्रेशन और change just one column type बना सकते हैं:

public function up() 
{ 
    Schema::table('sometable', function (Blueprint $table) { 
     $table->text('text')->change(); 
    }); 
} 
+0

आप अभी भी क्षेत्र ड्रॉप करने की आवश्यकता है? क्योंकि कॉलम बदलने के लिए आपके कोड का उपयोग करते समय भी मुझे अभी भी "कॉलम पहले से मौजूद है: 1060 डुप्लिकेट कॉलम नाम" प्राप्त हो रहा है। – NewbieLearner

4

अनुसार

आप इसे

Schema::table('yourTable', function (Blueprint $table) { 
    $table->text('text')->change(); 
}); 

की तरह कर सकते हैं सिद्धांत/dbal जोड़ने के लिए सुनिश्चित करने के लिए Laravel Doc आपकी composer.json फ़ाइल पर निर्भरता

1

एक तालिका प्रवासन के साथ करना संभव है।

जैसा कि अन्य पदों में उल्लिखित है, अपने प्रोजेक्ट रूट से composer install doctrine/dbal चलाने के लिए सुनिश्चित रहें।

php artisan make:migration alter_table_[yourtablenamehere]_change_[somecolumnname] --table=[yourtablenamehere] 
अपनी परियोजना जड़ से

:

इन के साथ स्थापित कर रहे हैं।

प्रलेखन से:

https://laravel.com/docs/master/migrations#modifying-columns

class AlterTableSomething extends Migration 
{ 
    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::table('table', function (Blueprint $table) { 
      $table->text('column_name')->change(); 
     }); 
    } 
} 
संबंधित मुद्दे