One self-hosted console to run your entire business — commerce, ERP, HRM, CRM & manufacturing

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 সমর্থনের জন্য দুটি জিনিস প্রয়োজন যা এই প্ল্যাটফর্ম ডিফল্টভাবে ইনস্টল করে না:

  • আপনার সার্ভারে mongodb PHP এক্সটেনশন
  • 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 (বা এটি আবার খালি করে দিন) এবং পরবর্তী অনুরোধে প্রতিটি মডেল ডিফল্ট সংযোগে ফিরে আসে — বৈশিষ্ট্যটি বন্ধ করতে কোন মাইগ্রেশন প্রয়োজন নেই।

Last updated: 10/5/2026