एक अन्य विकल्प यह है कि मैं अभी हाल ही में आया हूं (दी गई, मैं इसका उपयोग करना अभी बाकी हूं, लेकिन जल्द ही योजना बनाऊंगा): rdbms-subsetter
:।
यह जेलर की तुलना में थोड़ा सरल और हल्का है, जिसमें कुछ अच्छी विशेषताएं / भत्ते हैं:
- CLI मौजूदा टूलींग को तार करना इतना आसान है
- खुला स्त्रोत
- एक सुसंगत लाने के लिए विदेशी कुंजी का पालन करेंगेडेटा की सबसेट
- यदि आपके पास अच्छी तरह से परिभाषित विदेशी कुंजी नहीं है, तो रिश्तों को JSON कॉन्फ़िग फ़ाइल के माध्यम से प्रदान किया जा सकता है। मेरे मामले में, मैं स्कीमा मेटाडाटा से कहीं और संग्रहीत इस विन्यास को उत्पन्न करने की योजना (धन्यवाद, रेल: \)
- आप एक विशिष्ट पंक्ति को लक्षित कर सकते हैं और सभी प्राप्त कर सकते हैं संबंधित रिकॉर्ड (जैसे एक विशिष्ट ग्राहक के पास समस्याएँ हैं, इसलिए आप स्थानीय स्तर पर उनके खाते के डेटा को सुलभ बनाने के लिए सब कुछ नीचे खींच सकते हैं)
- यह या तो प्रति तालिका लगातार रिकॉर्ड ले सकता है या बिना किसी अतिरिक्त जानकारी के बड़े तालिकाओं से अधिक डेटा प्राप्त करने के लिए एक लघुगणक ले सकता है।
यह विशेष रूप से हेरोकू डेटाबेस के लिए एक और विकल्प का उल्लेख करने योग्य है, जिसका मैंने बहुत उपयोग किया है (जैसा कि मैं वहां काम करता था)।
हरोकू वास्तव में एक नया स्नैपशॉटेड डीबी लाने में बहुत तेज है क्योंकि यह लिखने के लिए आगे लॉग को तैयार करने के लिए खींचता है, फिर प्राथमिक डीबी को पकड़ने के लिए जोड़ता है, फिर उसका अनुसरण करना बंद कर देता है। आप बहुत अधिक उत्पादन को प्रभावित करने से बचने के लिए ऐप्स में ये "कांटे" बना सकते हैं:
$ heroku addons:create heroku-postgres[:specific-plan] \
--fork your-production-app::DATABASE \
--app some-other-app-to-own-forked-database \
[--as PRODUCTION_SNAPSHOT]
फिर, आप अपने ऐप को स्थानीय रूप से उस स्नैपशॉट को इंगित कर सकते हैं। मैं इसका उपयोग अक्सर डेटा या स्कीमा माइग्रेशन या डिबग ग्राहक समस्याओं का सूखा चलाने के लिए करता हूं।
ऊपर दिए गए कमांड में, यदि आपके पास एक डीबी सुलभ DATABASE_URL
है your-production-app
, PRODUCTION_SNAPSHOT_URL
तो आप --as
नाम के एक अलग ऐप पर (यदि आप निर्दिष्ट करते हैं ) के साथ डीबी सुलभ हो जाएगा some-other-app-to-own-forked-database
।