2015-04-27 22 views
9

इम मेरी स्थानीय होस्ट में एक डेटाबेस स्तंभ का नाम बदलने के लिए इतना है कि मैं बाद में विकास और उत्पादननाम बदलें स्तंभ laravel प्रवास का उपयोग कर सिद्धांत/dbal का उपयोग कर नाम त्रुटि

इम में कर laravel 5 और स्थापित सिद्धांत dbal का उपयोग कर सकते हैं की कोशिश कर देता है।

मेरे प्रवास के कोड:

$table->renameColumn('puesto', 'aux'); 

बाद मैं php artisan migrate चलाने यह मुझसे कहता है कि

[Doctrine\DBAL\DBALException]                   
Unknown database type json requested, Doctrine\DBAL\Platforms\PostgreSqlPlatform may not support it. 

स्तंभ im, हालांकि वहाँ तालिका में json स्तंभ हैं यहां तक ​​कि json नहीं है नाम बदलने का प्रयास, वास्तव में केवल 'एलियाजास' कहा जाता है। मेरा सवाल है, मैं माइग्रेशन से कॉलम का नाम कैसे बदल सकता हूं और डेटाबेस में मैन्युअल रूप से नहीं।

+0

तुम क्यों सिद्धांत स्थापित कर रहे हैं Laravel उसके अपने महान [माइग्रेशन] जब (http://laravel.com /docs/5.0/migrations)? –

+0

लार्वेल दस्तावेज आपको कॉलर का नाम बदलने जा रहा है, यदि आप कॉलम का नाम बदलने जा रहे हैं http://laravel.com/docs/5.0/schema#renaming-columns – Amonra

+0

मैं लार्वेल 5 का उपयोग कर रहा हूं और जब मैं composer.json के माध्यम से चला गया तो यह देखने के लिए कि निर्भरता इसे शामिल नहीं किया गया था इसलिए मैंने इसे जोड़ा। किसी भी तरह से मैंने सिद्धांत स्थापित करने से पहले एक ही कोड की कोशिश की और त्रुटि अलग थी, यह '[सिम्फनी \ घटक \ डीबग \ अपवाद \ FatalErrorException] कक्षा 'सिद्धांत \ DBAL \ Driver \ PDOPgSql \ Driver' नहीं मिला 'इसलिए मैंने सोचा सभी – Amonra

उत्तर

1

यह त्रुटि अभी भी Laravel 5.1 में होती है, भले ही doctrine/dbal स्थापित है।

एक अस्थायी समाधान के रूप में, आप तो जैसे कच्चे एसक्यूएल में अपने प्रवास लिख सकते हैं:

public function up(){ 
    DB::statement("ALTER TABLE table_name RENAME puesto TO aux"); 
} 
+0

यह MySQL के नए संस्करणों के साथ एक त्रुटि फेंकता है।'ए' से 'बी' तक एक पूर्णांक कॉलम का नाम बदलने के लिए सही वाक्यविन्यास है: ' वैकल्पिक तालिका टी 1 एक बी इंटेगर बदलें;' –

11

ऐसा लगता है कि laravel की तरह ही पता चलता है स्थापित करें।

आप के साथ स्थापित कर सकते हैं:

composer require doctrine/dbal 
8

संशोधित करना कॉलम

किसी और चीज की

एक कॉलम को संशोधित करने से पहले, अपने को सिद्धांत/dbal निर्भरता जोड़ना सुनिश्चित करें composer.json फ़ाइल। सिद्धांत डीबीएएल लाइब्रेरी का उपयोग कॉलम की वर्तमान स्थिति निर्धारित करने के लिए किया जाता है और कॉलम में निर्दिष्ट समायोजन करने के लिए आवश्यक SQL क्वेरी बनाते हैं।

"require": { 
    "doctrine/dbal": "^2.5" 
}, 

composer require doctrine/dbal 

अपडेट कर रहा है स्तंभ गुण

परिवर्तन विधि आपको एक नए प्रकार के लिए एक मौजूदा स्तंभ को संशोधित या स्तंभ के गुणों को संशोधित करने की अनुमति देता है। उदाहरण के लिए, आप स्ट्रिंग कॉलम के आकार को बढ़ाना चाहते हैं। कार्रवाई में परिवर्तन विधि देखने के लिए, की 25 से 50 से नाम स्तंभ का आकार बढ़ाने करते हैं:

Schema::table('users', function ($table) { 
    $table->string('name', 50)->change(); 
}); 
संबंधित मुद्दे