जवाबों:
मैं उपयोग rake db:reset
करता हूं जो ड्रॉप करता है और फिर डेटाबेस को फिर से बनाता है और इसमें आपकी सीड्रेसबीआर फाइल शामिल होती है।
http://guides.rubyonrails.org/migrations.html#resetting-the-database
आप सब कुछ हटा सकते हैं और डेटाबेस + बीज दोनों को फिर से बना सकते हैं:
rake db:reset
: schema.rb से लोड होता हैrake db:drop db:create db:migrate db:seed
: पलायन से भारसुनिश्चित करें कि आपके पास db (रेल सर्वर, एसक्यूएल क्लाइंट ..) से कोई संबंध नहीं है या डीबी ड्रॉप नहीं करेगा।
schema.rb आपके डेटाबेस की वर्तमान स्थिति का एक स्नैपशॉट है जिसे जनरेट किया गया है:
rake db:schema:dump
यदि आपको अपने डेटा को फिर से लोड करने के लिए पूरे शेलबैंग को छोड़ने और फिर से बनाने का मन नहीं है, तो आप डेटा को लोड करने से पहले एक तालिका को साफ करने के लिए seed.db फ़ाइल में उपयोग MyModel.destroy_all
(या delete_all
) कर सकते हैं MyModel.create!(...)
। फिर, आप db:seed
ऑपरेशन को बार-बार बदल सकते हैं। (जाहिर है, यह केवल उन तालिकाओं को प्रभावित करता है जिन्हें आपने डेटा लोड किया है, उनमें से बाकी नहीं।)
Https://stackoverflow.com/a/14957893/4553442 पर "गंदा हैक" एक "डी-सीडिंग" ऑपरेशन को जोड़ने के लिए ऊपर और नीचे माइग्रेट करने के समान है ...
रेल 5 के रूप में, rake
कमांडलाइन उपकरण के रूप में एलियास कर दिया गया है rails
तो अब
rails db:reset
के बजाय rake db:reset
साथ ही काम करेगा
rake db:reset
जब आप स्थानीय डेटाबेस को गिराना चाहते हैं और जब आप लोड किए गए डेटा से नए सिरे से शुरू करना चाहते हैं तो आप इसका उपयोग कर सकते हैं db/seeds.rb
। यह एक उपयोगी कमांड है जब आप अभी भी अपने स्कीमा का पता लगा रहे हैं, और अक्सर मौजूदा मॉडल में फ़ील्ड जोड़ने की आवश्यकता होती है।
एक बार रीसेट कमांड का उपयोग करने के बाद यह निम्न कार्य करेगा: डेटाबेस को छोड़ें: rake db:drop
स्कीमा लोड करें: rake db:schema:load
डेटा सीड करें:rake db:seed
लेकिन अगर आप अपने डेटाबेस को पूरी तरह से छोड़ना चाहते हैं तो आप इसका उपयोग कर सकते हैं rake db:drop
। डेटाबेस को छोड़ने से कोई स्कीमा संघर्ष या खराब डेटा भी निकल जाएगा। यदि आप अपने पास मौजूद डेटा रखना चाहते हैं, तो इस कमांड को चलाने से पहले इसका बैकअप अवश्य लें।
यह सबसे महत्वपूर्ण रेक डेटाबेस कमांड के बारे में एक विस्तृत लेख है ।