2013-03-01 8 views
11

के लिए struct.sql बनाने में मदद की ज़रूरत है मैं परीक्षण उद्देश्यों के लिए मैन्युअल रूप से db/struct.sql फ़ाइल को बनाने/अद्यतन करने का प्रयास कर रहा हूं। मेरे पास "config.active_record.schema_format = :sql" एप्लिकेशन.आरबी में सेट है। मैं सोच रहा हूं कि "ActiveRecord::SchemaDumper.dump" के बराबर कमांड है जो struct.sql को बना या अपडेट करेगा। मैं structure_dump की कोशिश की है, लेकिन उत्पादन नहीं के बराबर है:मेरे रेल ऐप

> ActiveRecord::Base.connection.structure_dump 
=> nil 

मैं भी उस विधि के लिए एक फ़ाइल गुजर करने की कोशिश की:

> File.open(File.join(Rails.root, 'db/structure.sql')) { |f| ActiveRecord::Base.connection.structure_dump() } 
=> nil 

अब तक, एक ही रास्ता मैं उत्पन्न करने में सक्षम किया गया है या अद्यतन डीबी/struct.sql रेक डीबी चल रहा है: माइग्रेट करें। कोई विकल्प? या ActiveRecord :: Base.connection.structure_dump चलाने की कोशिश करते समय मुझे कुछ याद आ रही है?

उत्तर

23

rake db:structure:dump का प्रयास करें जो डेटाबेस से db/structure.sql को पुन: बना देगा।

+1

'रेक डीबी: स्कीमा: डंप 'बस schema.rb को पुन: उत्पन्न करता है। मैं struct.sql पाने की कोशिश कर रहा हूँ। – MothOnMars

+0

मेरा बुरा। भूल गए कि आप एसक्यूएल प्रारूप का उपयोग कर रहे हैं। अद्यतन के लिए अद्यतन उत्तर – jvnill

+0

देखें। मैं वास्तव में सोच रहा हूं कि ऐसा करने का एक गैर-रेक कार्य तरीका है, सिर्फ इसलिए कि मैं इसे एक परीक्षण से बुलाऊंगा, और रेक कार्य को कॉल करना ऐसा लगता है जैसे यह आवश्यक नहीं होना चाहिए (हालांकि मैं काफी नया हूं रेल, तो मैं बहुत ज्यादा अनुमान लगा सकता हूं)। मैं सोच रहा था कि अगर ActiveRecord :: SchemaDumper.dump रैक डीबी के बराबर कमांड है: स्कीमा: डंप, हो सकता है कि रैक डीबी के बराबर एक समान एक-पंक्ति हो: संरचना: डंप ...? – MothOnMars