Discourse-Synchronisation für mehrere Instanzen

Ich habe einen Master-Server und werde mehr als 100–200 Slave-Instanzen haben. Die Slave-Instanzen können online oder offline sein, werden aber von Benutzern genutzt. Wenn eine offline Instanz wieder online geht, sollte sie sich ohne Konflikte mit dem Master-Server synchronisieren und alle neuesten Daten aktualisieren können. Ich möchte keine Änderungen am Code vornehmen, da Discourse sich häufig selbst aktualisiert und ich nicht möchte, dass eine Instanz durch Codeänderungen beschädigt wird.

Ich überlege, PostgreSQL in gewissem Umfang anzupassen. Andere datenbezogene Dateien können mit Syncthing synchronisiert werden. Die Aktualisierung von PostgreSQL-Daten macht mir jedoch Sorgen, denn wenn ich die Master-Daten direkt synchronisiere, gehen die von Offline-Benutzern erbrachten Leistungen nach der Synchronisierung verloren.

Ich denke darüber nach, die Auto-Inkrement-Sequenz jeder Tabelle in der Datenbank auf UUID zu ändern.

Gibt es eine mögliche einfache Lösung dafür?

Discourse ist nicht für eine Anwendung wie diese ausgelegt. Es ist äußerst unwahrscheinlich, dass Sie eine bidirektionale PostgreSQL-Synchronisierung implementieren können, die Discourse nicht beschädigt.

Eine solche Änderung würde erhebliche Anpassungen im Discourse-Code erfordern.

Wenn Sie die Slaves schreibgeschützt machen und PostgreSQL einseitig synchronisieren, könnte es möglich sein, dies zum Laufen zu bringen … aber es wird schwierig sein.

Hallo, ich plane eine ähnliche Nutzung wie Sie. Ich habe einen Artikel über die Zusammenführung von zwei Discourse-Sites gefunden. Wenn die Zusammenführungsschritte automatisiert werden können, könnten wir vielleicht einen Cronjob einrichten, um die Datenbank ständig zwischen dem Master-Server und den Slave-Instanzen zusammenzuführen?