PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

मैं एक ActiveRecord मॉडल विशेषता को json से jsonb में कैसे माइग्रेट करूं?

मैं इस तरह से माइग्रेशन लिखूंगा:

def change
  reversible do |dir|
    dir.up { change_column :models, :attribute, 'jsonb USING CAST(attribute AS jsonb)' }
    dir.down { change_column :models, :attribute, 'json USING CAST(attribute AS json)' }
  end
end

मुझे नहीं पता कि यह प्रदर्शन-वार की तुलना अन्य समाधानों से कैसे करता है, लेकिन मैंने इसे 120,000 रिकॉर्ड वाली तालिका पर परीक्षण किया, प्रत्येक रिकॉर्ड में चार json हैं कॉलम और मुझे उस तालिका को माइग्रेट करने में लगभग एक मिनट का समय लगा। बेशक, मुझे लगता है कि यह इस बात पर निर्भर करता है कि json . कितना जटिल है संरचना है।

साथ ही, ध्यान दें कि यदि आपके मौजूदा रिकॉर्ड का डिफ़ॉल्ट मान {} . है , आपको उपरोक्त कथनों में जोड़ना होगा default: {} , क्योंकि अन्यथा आपके पास jsonb . होगा कॉलम, लेकिन डिफ़ॉल्ट मान '{}'::json . के रूप में रहेगा ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक बड़ी तालिका में पूर्ण डुप्लिकेट पंक्तियों की जाँच करें

  2. संबंध के साथ सेटवल () विफल क्यों होता है ... मौजूद नहीं है?

  3. postgresql - पूर्णांक सीमा से बाहर

  4. पोस्टग्रेज ट्रिगर फंक्शन

  5. PostgreSQL में सेकंड में टाइमस्टैम्प के बीच अंतर खोजें