2012-07-26 8 views
14

मैं रेल 3.2.6 का उपयोग कर रहा हूं और मुझे डेटाबेस दृश्य बनाने की आवश्यकता है। हमेशा की तरह मैंने माइग्रेशन बनाया और मैंने निष्पादन विधि का उपयोग करके लक्ष्य प्राप्त करने का प्रयास किया।रेल 3.2.6 और माइग्रेशन के माध्यम से डेटाबेस दृश्य निर्माण

दुर्भाग्यवश माइग्रेशन एक तालिका उत्पन्न करता है, न कि दृश्य। क्यूं कर?

अग्रिम में बहुत धन्यवाद, मौरो

अद्यतन:

मैं इस प्रकार कुछ है करना चाहते हैं:

class CreateMyView < ActiveRecord::Migration 
    def self.up 
    execute <<-SQL 
     CREATE VIEW my_view AS SELECT ... 
    SQL 
    end 
    def self.down 
    execute <<-SQL 
     DROP VIEW my_view 
    SQL 
    end 
end 

दुर्भाग्य से इस प्रवास एक मेज बनाता है ...

अद्यतन: पिछले कोड काम करता है! मैं रेक डीबी निष्पादित कर रहा था: रेक डीबी के बजाय रीसेट करें: माइग्रेट करें: रीसेट करें (मेरी गलती)

+1

मुझे यकीन नहीं है कि इस तरह के माइग्रेशन को उत्पन्न करना संभव है। दृश्य बनाने के लिए कच्चे एसक्यूएल का प्रयोग करें। –

+0

मैं वही कर रहा हूं (सिवाय इसके कि मैं डिफ अप और डिफ डाउन का उपयोग कर रहा हूं, self.up और def self.down को डिफॉल्ट नहीं करता - क्या कोई अंतर है?) और मुझे वही व्यवहार मिलता है: यह एक दृश्य बनाता है जब मैं माइग्रेशन चलाएं, लेकिन schema.rb फ़ाइल में create_table कमांड जोड़ता है। – Ladlestein

उत्तर

2

ऐसा लगता है कि आपने अपना खुद का प्रश्न उत्तर दिया है, लेकिन मैं एक संबंधित सुझाव दूंगा। rails_sql_views gem आज़माएं। वह लिंक गिटहब पर मूल रेपो पर जाता है। ऐसा लगता है कि यह अब और बनाए रखा नहीं जा रहा है, हालांकि। यह network graph को देखने और फोरक्स में से किसी एक को देखने के लायक होगा। मैं सकारात्मक नहीं हूं कि किसी भी कांटे रेल 3.2.6 का समर्थन करता है, लेकिन मैं उन्हें देखकर सुझाव दूंगा। लगभग तीन साल पहले क्रिश्चियन ईचहोर्न added support for the mysql2 adapter

2

मैंने rails_db_views नामक एक मणि बनाया है जो रेल 4 के साथ संगत है, और अभी भी बनाए रखा है।

सम्मान,

यासीन।

+0

हाय यासीन, स्टैक ओवरफ्लो में आपका स्वागत है। जिथब पर एक बाहरी उदाहरण को इंगित करने के बजाय, यदि आप समस्या को हल करने के लिए क्या करते हैं तो आप यहां निर्दिष्ट कर सकते हैं, तो समाधान के लिए अन्य लोगों के लिए यह अधिक उपयोगी होगा। –

+0

हैलो आमोस! आपके कमेंट के लिए धन्यवाद। दरअसल समस्या यह है कि रेल में किए गए माइग्रेशन सिस्टम को विचारों को संभालने के लिए नहीं बनाया जाता है ... इसलिए "सरल" प्रणाली नहीं है, और मुझे लगता है कि आपको विचारों को प्रबंधित करने के लिए एक नया तरीका लागू करने की आवश्यकता है। यही कारण है कि मैंने यह समाधान दिया;) – Yacine

संबंधित मुद्दे