مزامنة المناقشة لعدة instances

لدي خادم رئيسي، وسيكون لدي أكثر من 100-200 مثيل تابع (slave instance). يمكن أن تكون المثيلات التابعة متصلة أو غير متصلة بالإنترنت، لكن سيتم استخدامها من قبل المستخدمين. ومع ذلك، عندما يأتي مثيل غير متصل بالإنترنت إلى حالة الاتصال، يجب أن يتمكن من المزامنة مع الخادم الرئيسي دون إنشاء تعارضات، وتحديث جميع البيانات الأحدث. لا أريد إجراء أي تغييرات متعلقة بالكود لأن discourse تقوم بتحديث نفسها بشكل متكرر، ولا أريد كسر المثيلات بسبب تغييرات الكود.

أفكر في تعديل PostgreSQL إلى حد ما. يمكن مزامنة الملفات الأخرى المتعلقة بالبيانات باستخدام syncthing. لكن تحديث بيانات PostgreSQL هو ما يقلقني لأنه إذا قمت بمزامنة بيانات الخادم الرئيسي مباشرة، فستُحذف البيانات التي أنشأها المستخدم أثناء عدم اتصاله بعد المزامنة.

أفكر في تجربة تغيير تسلسل الزيادة التلقائية (auto-increment sequence) لكل جدول إلى UUID في قاعدة البيانات.

هل هناك حل سهل ممكن لذلك؟

نظام Discourse لم يُصمم لتطبيق مثل هذا. فمن غير المرجح للغاية أن تتمكن من تحقيق مزامنة ثنائية الاتجاه لقاعدة بيانات PostgreSQL بطريقة لا تُخلّ بنظام Discourse.

تغيير ذلك سيتطلب بعض التعديلات الكبيرة في كود Discourse.

إذا جعلت النسخ التابعة للقراءة فقط، وقمت بمزامنة PostgreSQL في اتجاه واحد، فقد يكون من الممكن جعل هذا يعمل… لكنه سيكون صعبًا.

مرحباً، أخطط لاستخدام مشابه لاستخدامك. لقد وجدت مقالاً حول دمج موقعي ديسكورس. إذا كان يمكن أتمتة خطوات الدمج، فربما يمكننا إعداد مهمة مجدولة لدمج قاعدة البيانات باستمرار بين الخادم الرئيسي والنسخ التابعة؟