
अपने उत्पादन डेटाबेस का एक टुकड़ा निकालें ताकि स्थानीय रूप से बगों को पुनरुत्पादित किया जा सके। dbslice को एक रिकॉर्ड पर इंगित करें, यह foreign keys का अनुसरण करता है और आपको एक पूर्ण, आयात योग्य उपसमुच्चय देता है।
स्थानीय विकास और डिबगिंग के लिए न्यूनतम, संदर्भात्मक रूप से अक्षुण्ण डेटाबेस उपसमुच्चय निकालें।
पूरे प्रोडक्शन डेटाबेस को अपनी मशीन पर कॉपी करना अव्यावहारिक है। लेकिन बग को पुन: उत्पन्न करने के लिए अक्सर उस सटीक डेटा की आवश्यकता होती है जिसने इसे उत्पन्न किया। dbslice केवल आपके द्वारा आवश्यक रिकॉर्ड निकालकर, विदेशी कुंजी संबंधों का अनुसरण करके संदर्भात्मक अखंडता सुनिश्चित करता है।
# वैश्विक रूप से स्थापित करें
uv tool install dbslice # या: pip install dbslice
# एक ऑर्डर और सभी संबंधित रिकॉर्ड निकालें
dbslice extract postgres://localhost/myapp --seed "orders.id=12345" > subset.sql
# स्थानीय डेटाबेस में आयात करें
psql -d localdb < subset.sql
| डेटाबेस | स्थिति |
|---|---|
| PostgreSQL | पूर्ण समर्थित |
| MySQL | योजनाबद्ध (अभी लागू नहीं) |
| SQLite | योजनाबद्ध (अभी लागू नहीं) |
# uv के साथ स्थापित करें (अनुशंसित)
uv add dbslice
# स्थापित किए बिना आज़माएं
uvx dbslice --help
# या pip के साथ
pip install dbslice
# प्राथमिक कुंजी द्वारा निकालें
dbslice extract postgres://user:pass@host:5432/db --seed "orders.id=12345"
# WHERE खंड के साथ निकालें
dbslice extract postgres://localhost/db --seed "orders:status='failed' AND created_at > '2024-01-01'"
# एकाधिक बीज
dbslice extract postgres://localhost/db \
--seed "orders.id=100" \
--seed "orders.id=101"
# गहराई सीमित करें (डिफ़ॉल्ट: 3)
dbslice extract postgres://... --seed "orders.id=1" --depth 2
# दिशा: up (केवल माता-पिता), down (केवल बच्चे), both (डिफ़ॉल्ट)
dbslice extract postgres://... --seed "orders.id=1" --direction up
# स्वचालित रूप से पता किए गए संवेदनशील फ़ील्ड अनाम बनाएं
dbslice extract postgres://... --seed "users.id=1" --anonymize
# अतिरिक्त फ़ील्ड को रिडैक्ट करें
dbslice extract postgres://... --seed "users.id=1" --anonymize --redact "audit_logs.ip_address"
कॉलम को दृश्य रूप से मैप करें, अनुपालन प्रोफ़ाइल लागू करें, और उपयोग के लिए तैयार कॉन्फ़िग उत्पन्न करें — सभी स्थानीय ब्राउज़र UI से।
dbslice map postgres://localhost/myapp
# कस्टम पोर्ट
dbslice map postgres://localhost/myapp --port 8888
# uvx के साथ भी काम करता है (स्थापना की आवश्यकता नहीं)
uvx dbslice map postgres://localhost/myapp
| अनामीकरण नियमों के लिए कॉलम मैप करें | कॉन्फ़िग उत्पन्न करें और निर्यात करें |
![]() | ![]() |
127.0.0.1:9473 पर एक बार उपयोग वाले सत्र टोकन के साथ चलता है — कोई डेटा आपकी मशीन नहीं छोड़ता। एक क्लिक से GDPR, HIPAA, या PCI-DSS प्रोफ़ाइल लागू करें, समीक्षा करें कि क्या मास्क किया गया है, फिर YAML डाउनलोड करें।
# HIPAA Safe Harbor — सभी 18 पहचानकर्ता प्रकारों को स्वचालित रूप से मास्क करता है
dbslice extract postgres://... --seed "patients.id=1" --compliance hipaa --compliance-strict
# एकाधिक प्रोफ़ाइल + ऑडिट मेनिफ़ेस्ट
dbslice extract postgres://... --seed "users.id=1" --compliance gdpr --compliance pci-dss -f subset.sql
# subset.sql + subset.manifest.json उत्पन्न करता है
# SQL (डिफ़ॉल्ट)
dbslice extract postgres://... --seed "orders.id=1" --output sql
# JSON फिक्स्चर
dbslice extract postgres://... --seed "orders.id=1" --output json --out-file fixtures/
# CSV
dbslice extract postgres://... --seed "orders.id=1" --output csv --out-file data/
उन संबंधों के लिए जो डेटाबेस स्कीमा (Django GenericForeignKeys, अंतर्निहित संबंध) में परिभाषित नहीं हैं:
# dbslice.yaml
database:
url: postgres://localhost:5432/myapp
virtual_foreign_keys:
- source_table: notifications
source_columns: [object_id]
target_table: orders
description: "ContentType के माध्यम से ऑर्डर के लिए जेनेरिक FK"
- source_table: audit_log
source_columns: [user_id]
target_table: users
description: "DB बाधा के बिना अंतर्निहित FK"
dbslice extract --config dbslice.yaml --seed "users.id=1"
dbslice inspect postgres://localhost/myapp
# डेटाबेस से कॉन्फ़िग उत्पन्न करें
dbslice init postgres://localhost/myapp --out-file dbslice.yaml
# कॉन्फ़िग का उपयोग करें
dbslice extract --config dbslice.yaml --seed "orders.id=12345"
dbslice हल्का, शून्य-कॉन्फ़िग Python विकल्प है: एक मिनट से भी कम समय में स्थापित करें और निकालें।
git clone https://github.com/nabroleonx/dbslice.git
cd dbslice
uv sync --dev
uv run pytest
MIT
| सुविधा | dbslice | Jailer | Greenmask | slice-db |
|---|
| भाषा | Python | Java | Go | Ruby |
| कॉन्फ़िगरेशन | शून्य-कॉन्फ़िग | मॉडल फ़ाइल आवश्यक | कॉन्फ़िग आवश्यक | मैनुअल YAML |
| सेटअप समय | सेकंड | घंटे | मध्यम | मध्यम |
| अनामीकरण | अंतर्निहित (Faker) | प्लगइन-आधारित | उन्नत ट्रांसफॉर्मर | उपलब्ध नहीं |
| अनुपालन प्रोफ़ाइल | GDPR, HIPAA, PCI-DSS | कोई नहीं | कोई नहीं | कोई नहीं |
| कॉलम मैपिंग UI | अंतर्निहित (स्थानीय) | कोई नहीं | कोई नहीं | कोई नहीं |
| PII मान स्कैनिंग | दो-चरण (प्री/पोस्ट मास्क) | कोई नहीं | कोई नहीं | कोई नहीं |
| उपसमुच्चयन | FK ट्रैवर्सल | FK ट्रैवर्सल | सीमित | FK ट्रैवर्सल |
| आउटपुट प्रारूप | SQL, JSON, CSV | SQL, XML, CSV | SQL | केवल SQL |
| चक्र प्रबंधन | स्वचालित | मैनुअल कॉन्फ़िग | N/A | मैनुअल |
| स्ट्रीमिंग | अंतर्निहित | कॉन्फ़िगरेबल | अंतर्निहित | उपलब्ध नहीं |
| रखरखाव | सक्रिय | सक्रिय | सक्रिय | अनुरक्षित नहीं |