MongoDB তে ঐতিহাসিক তথ্য
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;
}
কারণ Store Console লাইসেন্স অনুযায়ী সম্পূর্ণ সোর্স হিসেবে আসে, এই একলাইন যোগ করা আপনার নিজের কপির জন্য একটি স্বাভাবিক কাস্টমাইজেশন — এটি একটি বিক্রেতার প্যাচ নয়।
কিভাবে পূর্বাবস্থায় ফিরবেন
Unset HISTORICAL_DB_CONNECTION (বা এটি আবার খালি করে দিন) এবং পরবর্তী অনুরোধে প্রতিটি মডেল ডিফল্ট সংযোগে ফিরে আসে — বৈশিষ্ট্যটি বন্ধ করতে কোন মাইগ্রেশন প্রয়োজন নেই।

