Ein Staging-Server einrichten

Das ist sozusagen der Sinn des obigen Setups; es ist äußerst nützlich, wenn der Staging-Server auf denselben Bucket zeigt, da dies die Synchronisation erheblich erleichtert.

Sie möchten jedoch nicht, dass er automatisch Backups erstellt (oder löscht) – daher sind diese durch diese Einstellungen deaktiviert:

Ich stimme zu, dass das CDN für Ihre Staging-Site deaktiviert werden muss. Ich habe mich damit selbst noch nicht beschäftigt, aber sobald Sie herausgefunden haben, wie das geht, aktualisieren Sie bitte das Wiki im OP oder fügen Sie es hinzu.

2 „Gefällt mir“

Danke, Nathan. Ich habe gelesen, dass S3-Backups die Dinge einfacher machen, aber ein Backup ist etwas anderes als die Website-Assets, daher war ich mir nicht sicher.

Ich habe die Backups und E-Mails bereits deaktiviert, also ist alles in Ordnung. Ich werde damit beginnen, den Staging-Server auf den vorhandenen Bucket zu verweisen und sicherzustellen, dass er nicht das CDN verwendet.

1 „Gefällt mir“

Das Teilen von Backups ist wirklich praktisch, da es das einfache Kopieren Ihrer Produktionsdatenbank auf die Staging-Umgebung ermöglicht.

2 „Gefällt mir“

Ich plane, einen Spiegel meiner Produktions-Discourse mit der rsync-Methode zu erstellen.

Ich habe ein paar andere Websites, die sich in Discourse integrieren. Daher wäre es ideal, wenn die Entwicklungs-/Testversionen dieser Websites eine Entwicklungs-/Test-/Staging-Version von Discourse aufrufen und mit ihr interagieren könnten.

Daher würde ich sie nur bei Bedarf einschalten und eine Datenbank-Sicherung meiner PROD-Umgebung auf meine STAGING-Umgebung wiederherstellen – nicht täglich, sondern vielleicht nur einmal im Monat.

Wenn ich das tue, wie kann ich verhindern, dass einige Einstellungen bei der Datenbankwiederherstellung zurückgesetzt werden? :thinking:

Diese zum Beispiel wären von unschätzbarem Wert:

Gibt es eine Möglichkeit, eine Datenbank-Sicherung wiederherzustellen und dann vielleicht einige Einstellungen manuell anzuwenden, bevor Discourse gestartet wird? Andere Ideen, Vorschläge, Fallstricke? :thinking:

Wenn Sie Backups auf S3 aufbewahren und diese über Umgebungsvariablen konfigurieren, können Sie ganz einfach eine neue Website starten, die dieses Backup wiederherstellen kann. Starten Sie einfach eine neue VM, klonen Sie Discourse, kopieren Sie die YML, bauen Sie neu und stellen Sie wieder her. Sie können Einstellungen in der Datenbank mit Umgebungsvariablen überschreiben, wie im Zitat in Ihrem Beitrag.

3 „Gefällt mir“

Perfekt, es klingt fast zu einfach :smiley:

2 „Gefällt mir“

Fehlt mir ein Schritt? Ich bin ziemlich sicher, dass das vor etwa einem Jahr funktioniert hat. Aber jetzt, obwohl es sich füllt, werden keine Themen oder Beiträge über Über die Kategorie hinaus hinzugefügt… hat sich etwas geändert?

Als ich es gerade versuchte, wurden Gruppen- und Benutzereinträge erstellt, aber beim Erstellen von Kategorien schlug es mit

ActiveRecord::RecordInvalid: Validierung fehlgeschlagen: Kategoriename ist bereits vergeben (ActiveRecord::RecordInvalid)

fehl.

Es scheint, als ob es intelligent genug sein sollte, keine Kategorie mit einem vorhandenen Namen zu erstellen.

Meine Seite war jedoch nicht leer. Es gibt auch eine dev:repopulate-Aufgabe, die zuerst die Datenbank löscht.

1 „Gefällt mir“

Danke Jay! Hier ist ein Bildschirm, der zeigt, was ich versucht habe… Es sieht so aus, als müsste ich mich in der „Entwicklungsumgebung“ befinden. Wie kann ich diese aufrufen?

Ich habe schließlich ein altes Backup von einer meiner Discourse-Instanzen wiederhergestellt, auf der ich diese Methode zuvor verwendet hatte, um sie zu befüllen. Ich musste dies tun, aber es hat funktioniert.

Um die Datenbank löschen zu können, müssen Sie etwas Bestimmtes tun. Wenn Sie die db:drop Rake-Aufgabe ausführen, wird Ihnen mitgeteilt, was das ist. Sie müssten also sv stop unicorn ausführen und dann die Datenbank löschen, erstellen und migrieren, bevor Sie die Aufgabe ausführen. Oder das ist das Nächste, was ich versuchen würde, aber Sie haben eine andere Lösung…

1 „Gefällt mir“

14 Beiträge wurden in ein neues Thema aufgeteilt: Server auf 2-Container-Setup umstellen

Ich versuche, Testdaten auf meinem Staging-Server zu hinterlegen, erhalte aber eine Fehlermeldung:

rake aborted!
Datenbankbefehle werden nur in der Entwicklungsumgebung unterstützt

Dies geschieht in einer Multisite-Einrichtung, daher lauten die Befehle, die ich ausführe:

./launcher enter web_only
ALLOW_DEV_POPULATE=1 bundle install
RAILS_DB=instance-x ALLOW_DEV_POPULATE=1 rake dev:populate

Die ich bisher ohne Probleme verwendet habe, aber jetzt erhalte ich diese Fehlermeldung. Kann ich eine Umgebungsvariable setzen, um Datenbankbefehle in der Produktion zuzulassen?