Meine Gruppe hat zwei Monate lang Discourse auf einer temporären Domain betrieben, bis wir uns auf unsere eigentliche Domain einigen konnten. Gestern habe ich versucht, alle Inhalte von der alten auf die neue Domain zu migrieren. Alle Textinhalte, Benutzerkonten und sogar interthread-Links wurden korrekt übertragen. Doch jetzt:
- Alle früheren Bild-Einbettungen scheinen verloren gegangen zu sein.
- Es können keine neuen Bilder hochgeladen werden.
So ist mein Vorgehen gewesen:
- Ich habe eine neue Discourse-Instanz auf einem neuen DigitalOcean-Droplet erstellt.
- Ich habe die neue Domain mit diesem neuen Droplet verbunden.
- Ich habe bestätigt, dass sowohl die Discourse-Instanzen als auch alle Plugins auf dem neuesten Stand der verfügbaren Softwareversionen waren.
- Ich habe die alte Discourse-Instanz in den Nur-Lese-Modus versetzt, um das Hinzufügen neuer Inhalte zu verhindern.
- Ich habe ein Backup der alten Discourse-Instanz erstellt.
- Ich habe das Backup auf die neue Discourse-Instanz hochgeladen.
- Ich habe die E-Mail-Adresse von Discourse von der E-Mail der alten Domain auf die der neuen Domain geändert.
- Ich habe einen Test der Benachrichtigungen durchgeführt, der für die neue Discourse-Instanz funktioniert hat.
- Ich habe alle Discourse-Einstellungen durchgegangen, um alle Erwähnungen der alten Domain durch die neue Domain zu ersetzen.
- Ich habe das alte Subdomain so umgeleitet, dass es auf die richtige Domain weiterleitet, und dort vorübergehend eine Notiz mit einem Link zur neuen Discourse-Instanz hinzugefügt.
Wie oben beschrieben, wurden die meisten Inhalte fehlerfrei übertragen. Doch einen Tag später haben wir festgestellt, dass die alten Bild-Einbettungen verloren gegangen sind und keine neuen Bilder hochgeladen werden können. Es wird nur der „alt“-Inhalt angezeigt. Ein Screenshot eines Beispiels folgt.
Bei der Google-Suche scheint es mehrere ausführliche Threads zu diesem Thema zu geben, aber ich habe keinen gefunden, der eine Domainänderung und die Unfähigkeit, neue Bilder hochzuladen, behandelt.
Ich habe gerade versucht, das Problem wie folgt zu lösen:
- SSH-Verbindung zur Maschine herstellen.
- In das Discourse-Verzeichnis wechseln und die App starten.
rake posts:missing_uploadsausführen. Das ergibt:
Looking for missing uploads on: default
0 post uploads are missing.
rake uploads:missingausführen. Das ergibt eine lange Liste:
/var/www/discourse/public/uploads/default/original/1X/bbc547e72f080561282be277749165709cbb0983.ico
/var/www/discourse/public/uploads/default/original/1X/0a421ccd1a08047895e2355f44c332f8b069107d.jpeg
/var/www/discourse/public/uploads/default/original/1X/034e0353b7558a26252c82982de53002fda0a33f.jpeg
[…]
/var/www/discourse/public/uploads/default/original/1X/f7a6164ffa55af4ee2706d2386227183ef6c2d61.png
96 of 281 uploads are missing
/var/www/discourse/public/uploads/default/optimized/1X/997bc5536763d84a8d035ff7becd98277a158680_2_45x45.png
[…]
/var/www/discourse/public/uploads/default/optimized/1X/8944afba36549c9050ef074b391625ef93d4d0e3_2_1035x582.jpeg
/var/www/discourse/public/uploads/default/optimized/1X/8944afba36549c9050ef074b391625ef93d4d0e3_2_10x10.png
247 of 761 optimized_images are missing
rake uploads:recover_from_tombstoneausführen. Das gibt keine Ausgabe.
Ich gebe zu, dass ich nicht genau weiß, was diese Rake-Befehle tun.
Ich kann auch in der Datei containers/app.yml sehen, dass DISCOURSE_HOSTNAME die korrekte (neue) Subdomain und Domain ist.
Das Ausführen von ./launcher rebuild app scheint nichts zu ändern.
Kann mir bitte jemand helfen? Vielen Dank.


