মঙ্গোডিবিতে ঐতিহাসিক ডেটা
ডিফল্টভাবে প্রতিটি টেবিল আপনার অ্যাপের প্রধান সংযোগে (PostgreSQL বা MySQL) থাকে — এই বৈশিষ্ট্যের কারণে কিছুই পরিবর্তিত হয় না যতক্ষণ না আপনি এতে অংশগ্রহণ করেন। স্ব-হোস্টেড স্টোরগুলির জন্য যাদের অনেক অ্যাপেন্ড-শুধু ইতিহাস (অ্যাক্টিভিটি লগ এন্ট্রি, চ্যাট ট্রান্সক্রিপ্ট, CRM ইমেইল ইতিহাস) রয়েছে, তারা শুধুমাত্র সেই টেবিলগুলোকে একটি আলাদা সংযোগে স্থানান্তর করতে পারে, মঙ্গোডিবি সহ, অন্য কিছুতে স্পর্শ না করেই।
কী স্থানান্তরিত হয়
- অ্যাক্টিভিটি লগ —
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 সংযোগ টেমপ্লেট config/database.php এ ইতিমধ্যে শিপ করা হয়েছে, কিন্তু এটি inert যতক্ষণ না আপনি এতে অংশগ্রহণ করেন:
HISTORICAL_DB_CONNECTION=mongodb
MONGODB_URI=mongodb://user:password@host:27017
MONGODB_DATABASE=storeconsole_history
মঙ্গোডিবি সমর্থনের জন্য দুটি জিনিস প্রয়োজন যা এই প্ল্যাটফর্ম ডিফল্টভাবে ইনস্টল করে না:
- আপনার সার্ভারে
mongodbPHP এক্সটেনশন composer require mongodb/laravel-mongodb(মূলsuggestএcomposer.jsonএর অধীনে তালিকাভুক্ত)
এক্সটেনশন এবং প্যাকেজ ইনস্টল না হলে, HISTORICAL_DB_CONNECTION=mongodb সেট করা নিরাপদে উপেক্ষা করা হয় — প্রতিটি মডেল ডিফল্ট সংযোগে ফিরে আসে এবং অ্যাপটি আগের মতোই বুট এবং চালায়।
পূর্ণ মঙ্গোডিবি মডেল সমর্থন
একবার mongodb/laravel-mongodb ইনস্টল হলে, সংযোগ পরিবর্তন করা একা আপনাকে মঙ্গো সংগ্রহে কোয়েরি-বিল্ডার স্তরের অ্যাক্সেস দেয়। পূর্ণ 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 আনসেট করুন (অথবা এটি আবার খালি সেট করুন) এবং প্রতিটি মডেল পরবর্তী অনুরোধে ডিফল্ট সংযোগে ফিরে আসে — বৈশিষ্ট্যটি বন্ধ করতে কোন মাইগ্রেশন প্রয়োজন নেই।

