2013-05-23 4 views
5

के साथ रूबी 2.0.0-पी 1 9 5 का उपयोग रेल 3.2.13 और postgres_ext gem के v0.3.1 के साथ बदलता है।रेल 3.2 स्कीमा डंप सभी यूयूआईडी कॉलम को टेक्स्ट और मैंगल्स सरणी घोषणाओं को पोस्टग्रेस_क्स्ट मणि

ऐसा लगता है कि मुझे रेलवे का उपयोग करते हुए स्कीमा डंप (एसक्यूएल संरचना डंप नहीं) के साथ अक्सर परेशानी होती है जिसमें स्कीमा डम्पर यूआईआईआईडी कॉलम को टेक्स्ट कॉलम और "{}" के डिफ़ॉल्ट कॉलम में टेक्स्ट कॉलम में परिवर्तित करता है। निम्नलिखित की तरह नियमित संचालन जैसे rake db:schema:dump कारण विनाशकारी डिफ:

- t.string "dbas",   :default => [],     :array => true 
- t.string "industries", :default => [],     :array => true 
+ t.text  "dbas",   :default => "{}" 
+ t.text  "industries", :default => "{}" 
- t.uuid  "uuid" 
+ t.text  "uuid" 

अगर मैं मैन्युअल रूप से डीबी की संरचना की जांच या सिर्फ रेल स्तंभ किस प्रकार टाइप यह सोचता है कि किसी दिए गए विशेषता है, सब कुछ ठीक लग रहा है पूछना।

स्वाभाविक रूप से, यह समस्या सभी तरह के विनाश को खत्म कर देती है। एसक्यूएल स्ट्रक्चर डंप पर स्विच करने से छोटा, मैं उचित स्कीमा डंप कैसे प्राप्त कर सकता हूं?

+0

इस प्रश्न के लिए GitHub मुद्दा: https://github.com/dockyard/postgres_ext/issues/83 –

उत्तर

1

रेल 3.2 के साथ, आपको रूबी संस्करण के बजाय स्कीमा के SQL संस्करण को डंप करने के लिए rake db:structure:dump का उपयोग करने की आवश्यकता होगी।

rake db:schema:dump का उपयोग करते समय रेल 4 अधिक प्रकार के हैंडल करता है, जो आप खोज रहे हैं।

+0

Postgres_ext देशी PostgreSQL प्रकार के लिए स्कीमा डंप सहायता प्रदान करता है। यहां मुद्दा यह है कि एक और मणि postgres_ext के साथ बातचीत कर रहा है। यहां समस्या देखें: https://github.com/dockyard/postgres_ext/issues/83 –

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