ActiveRecord varchar(255)
(या character varying (255)
पैडेंटिक होने के लिए) का उपयोग करता है यदि आप कोई विशिष्ट सीमा निर्दिष्ट नहीं करते हैं। आप PostgreSQL को psql
के साथ हमेशा पोस्टग्रेएसक्यूएल में हॉप कर सकते हैं और तालिका प्राप्त करने के लिए \d your_table
कह सकते हैं क्योंकि PostgreSQL इसे देखता है।
मुझे नहीं लगता कि डिफ़ॉल्ट कहीं भी निर्दिष्ट किया जाता है, लेकिन यह right here in the source है:
NATIVE_DATABASE_TYPES = {
:primary_key => "serial primary key",
:string => { :name => "character varying", :limit => 255 },
#...
एक विनिर्देश के निकटतम बात में है Migrations Guide:
ये एक उपयुक्त पर मैप किया जाएगा अंतर्निहित डेटाबेस प्रकार, उदाहरण के लिए MySQL :string
के साथ VARCHAR(255)
पर मैप किया गया है।
लेकिन यह PostgreSQL के बारे में नहीं है और वास्तव में गारंटी नहीं है।
एक के रूप में एक तरफ, अगर आप PostgreSQL का उपयोग कर रहे हैं, तो आप लगभग हमेशा सीधे :text
के पास जाकर नाटक कि :string
मौजूद नहीं है चाहिए। PostgreSQL उन्हें आंतरिक रूप से समान व्यवहार करता है सिवाय इसके कि इसे varchar
पर लम्बाई जांच करनी है। यहां मेरे उत्तरों में से एक में इस पर कुछ और चर्चा है: Changing a column type to longer strings in rails।
NATIVE_DATABASE_TYPES = {
primary_key: "serial primary key",
bigserial: "bigserial",
string: { name: "character varying" },
text: { name: "text" },
#...
आप अधिकतम संख्या ActiveRecord सिर्फ character varying
सेट हो जाएगा निर्दिष्ट नहीं है और आप वहां एक स्ट्रिंग संग्रहीत कर सकती है:
स्रोत
2011-11-14 23:45:12
असाधारण रूप से सहायक उत्तर, धन्यवाद! – jpwynn