3 लोंगटेक्स्ट के साथ प्रवासन


90

मुझे अपनी रेल स्क्रिप्ट में टेक्स्ट से कॉलम टाइप को लॉन्गटेक्स्ट में बदलने की आवश्यकता है, लेकिन यह कैसे करना है, इस पर कुछ भी नहीं पा सकते हैं।

क्या कोई इस ओर भागा है?

धन्यवाद! डेनिस


1
: (LongText FWIW रेल 2 के लिए कम से कम, तुम बस के प्रकार का उल्लेख कर सकते हैं)
rogerdpack

जवाबों:


182

textप्रकार के हैंडल tinytext, text, mediumtext, और longtextMySQL के लिए, कि अगर आप क्या उपयोग कर रहे हैं। बस का उपयोग कर ऊपरी बाध्य निर्दिष्ट करें:limit => ...

उदाहरण:

change_column :articles, :body, :text, :limit => 4294967295

limitउम्मीद के मुताबिक डिफ़ॉल्ट मूल्य 65535 है।

1 to 255 bytes: TINYTEXT
256 to 65535 bytes: TEXT
65536 to 16777215 bytes: MEDIUMTEXT
16777216 to 4294967295 bytes: LONGTEXT

MySQL प्रलेखन यहाँ पाया जा सकता है


5
यह "4294967295" होना चाहिए न कि "4294967296" (यानी, 4.gigabytes - 1) वरना Mysql2::Error: Display width out of range for column ....उठाया गया है।
विक्रांत चौधरी

1
मैंने अपने उत्तर को प्रतिबिंबित करने के लिए संशोधित किया है। धन्यवाद एक गुच्छा विक्रांत।
चक कैलेब्स

4
Mysql 5.1.52 पर मैंने एक सीमा का उपयोग किया था 16.megabytes - 1, लेकिन मुझे अभी भी एक लोंगटेक्स्ट मिला है, न कि एक माध्यम। कोई विचार क्यों? धन्यवाद।
डेविड एम।

1
मेरे लिए भी समान है, भले ही t.text "bla" को निर्दिष्ट करते हुए,: सीमा => 16777215, परिणामस्वरूप स्तंभ प्रकार "longtext" है।
मार्टिन टी।

2
@ChuckCallebs: क्या हम इस समस्या को ठीक करने वाले PR का लिंक प्राप्त कर सकते हैं और इसे किस रूट के संस्करण में भेजना चाहिए?
डेमियन विल्सन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.