MongoDB पर ऐतिहासिक डेटा
डिफ़ॉल्ट रूप से हर टेबल आपके ऐप के मुख्य कनेक्शन (PostgreSQL या MySQL) पर रहती है — इस फीचर के बारे में कुछ भी नहीं बदलता जब तक कि आप ऑप्ट इन न करें। स्वयं-होस्टेड स्टोर्स जिनमें बहुत सारा अपेंड-ओनली इतिहास (गतिविधि लॉग प्रविष्टियाँ, चैट ट्रांसक्रिप्ट, CRM ईमेल इतिहास) है, वे केवल उन टेबल्स को एक अलग कनेक्शन पर ले जा सकते हैं, जिसमें MongoDB भी शामिल है, बिना कुछ और छुए।
क्या मूव होता है
- गतिविधि लॉग —
activity_logटेबल (हर क्रिएट/अपडेट/डिलीट/लॉगिन ऑडिट प्रविष्टि) - चैट संदेश — मैसेजिंग मॉड्यूल की
msg_messagesटेबल - CRM ईमेल इतिहास —
crm_email_messagesऔरcrm_email_eventsटेबल्स
बाकी सब — ऑर्डर, उत्पाद, ग्राहक, लेखा — हमेशा आपके प्राथमिक कनेक्शन पर रहता है। यह उच्च मात्रा वाले, शायद ही कभी जुड़े इतिहास टेबल्स के लिए एक लक्षित मूव है।
विकल्प A: एक और SQL कनेक्शन
किसी भी कनेक्शन पर इतिहास को पॉइंट करें जो पहले से config/database.php में परिभाषित है (उदाहरण के लिए, लॉग के लिए समर्पित दूसरा Postgres डेटाबेस):
HISTORICAL_DB_CONNECTION=pgsql_history
यह बिना किसी अतिरिक्त पैकेज के तुरंत काम करता है — यह एक साधारण SQL कनेक्शन पर साधारण Eloquent है।
विकल्प B: MongoDB
एक mongodb कनेक्शन टेम्पलेट config/database.php में पहले से ही शिप होता है, लेकिन यह निष्क्रिय है जब तक कि आप ऑप्ट इन न करें:
HISTORICAL_DB_CONNECTION=mongodb
MONGODB_URI=mongodb://user:password@host:27017
MONGODB_DATABASE=storeconsole_history
MongoDB समर्थन के लिए दो चीज़ें आवश्यक हैं जो यह प्लेटफ़ॉर्म डिफ़ॉल्ट रूप से इंस्टॉल नहीं करता:
- आपके सर्वर पर
mongodbPHP एक्सटेंशन composer require mongodb/laravel-mongodb(suggestमें रूटcomposer.jsonके तहत सूचीबद्ध)
बिना एक्सटेंशन और पैकेज इंस्टॉल किए, HISTORICAL_DB_CONNECTION=mongodb सेट करना सुरक्षित रूप से अनदेखा किया जाता है — हर मॉडल डिफ़ॉल्ट कनेक्शन पर वापस चला जाता है और ऐप पहले की तरह ही बूट और रन होता है।
पूर्ण MongoDB मॉडल समर्थन
एक बार mongodb/laravel-mongodb इंस्टॉल हो जाने पर, कनेक्शन स्विचिंग अकेले आपको Mongo संग्रह तक क्वेरी-बिल्डर स्तर की पहुंच देती है। पूर्ण Eloquent समर्थन (BSON कास्ट, ObjectId प्राथमिक कुंजी, एम्बेडेड दस्तावेज़) के लिए, इस पैकेज के MongoDB\Laravel\Eloquent\DocumentModel ट्रेट को मॉडल में जोड़ें, साथ ही इस प्लेटफ़ॉर्म द्वारा पहले से शिप किए गए इतिहास मॉडलों पर कनेक्शन-स्विचिंग ट्रेट:
use StoreConsole\PlatformKit\Traits\UsesHistoricalConnection;
use MongoDB\Laravel\Eloquent\DocumentModel;
class Activity extends SpatieActivity
{
use UsesHistoricalConnection;
use DocumentModel;
}
क्योंकि स्टोर कंसोल लाइसेंस के अनुसार पूर्ण स्रोत के रूप में शिप होता है, यह एक-लाइन जोड़ना आपके अपने कॉपी के लिए एक सामान्य कस्टमाइजेशन है — न कि एक विक्रेता पैच।
कैसे वापस लौटें
HISTORICAL_DB_CONNECTION को अनसेट करें (या इसे फिर से खाली पर सेट करें) और हर मॉडल अगले अनुरोध पर डिफ़ॉल्ट कनेक्शन पर लौटता है — फीचर को बंद करने के लिए कोई माइग्रेशन आवश्यक नहीं है।

