TehLeo
(Chris)
20 Marzo 2025, 10:31pm
1
Non riesco a ripristinare da un backup S3 di Discourse.
Passaggi per riprodurre:
Avere un backup di Discourse su S3.
Impostare una nuova installazione di Discourse.
Creare un account amministratore.
Collegare Discourse a S3
Individuare il backup di Discourse nei miei elenchi di backup S3
Abilitare il ripristino
Tentare il ripristino
Il ripristino fallisce
Log:
Ho provato tutto il possibile per risolvere i problemi di S3. Ho persino tentato di spostare il backup sul server ed eseguito un ripristino manuale / da riga di comando. Fallisce con lo stesso log. Ho provato a disattivare i caricamenti S3. Non sono sicuro quali siano i miei prossimi passaggi per la risoluzione dei problemi, o come vedere esattamente quale post sta causando il problema / rimuoverlo.
Grazie per qualsiasi aiuto!
1 Mi Piace
Canapin
(Coin-coin le Canapin)
20 Marzo 2025, 10:56pm
3
Benvenuto!
TehLeo:
Ho provato di tutto
“Di tutto” include la ricerca di log di errore simili qui?
https://meta.discourse.org/search?q=%22posts%20are%20not%20remapped%22%20%22s3%20migration%20failed%22%20order%3Alatest
In particolare questo risultato:
This sounds like the problem mentioned in Can't restore a backup if it includes link to Discourse onebox
You should be able to fix this during the restore, but you need to do it on the shell.
cd /var/discourse
./launcher enter app
# start the restore with the --pause argument
discourse restore --pause <backup_filename>
It will pause the restore process at two points:
Before DB migrations are run – you can ignore that; press a key to continue
Before Uploads are res…
1 Mi Piace
TehLeo
(Chris)
20 Marzo 2025, 11:16pm
4
Ho seguito queste istruzioni e ho ricevuto 9 post dalla cava. Il vecchio post non specifica cosa fare con questi post, o come correggere il problema oltre questo punto.
Canapin
(Coin-coin le Canapin)
20 Marzo 2025, 11:47pm
5
Questo è ciò che restituisce ask.discourse.org , non posso garantire che sia sicuro o che funzioni.
Durante un ripristino in pausa, hai l’opportunità di modificare o ripulire temporaneamente dati problematici come caricamenti o post nel database prima che Discourse proceda al completamento del processo di ripristino. Ecco come puoi gestire o modificare i dati problematici durante un ripristino in pausa, passo dopo passo.
Passaggi per gestire manualmente i dati problematici in un ripristino in pausa
Avvia il ripristino con pausa:
Esegui il ripristino con il flag --pause per consentire al processo di ripristino di interrompersi prima che vengano applicati caricamenti o rimappature:
cd /var/discourse
./launcher enter app
discourse restore --pause <nome_file_backup>
Punto di interruzione:
Il ripristino si interromperĂ in punti specifici:
Prima delle migrazioni del database: Premi un tasto per procedere in questo punto, poiché non riguarda caricamenti o post problematici.
Prima del ripristino dei caricamenti: Fermati qui per modificare eventuali problemi relativi ai caricamenti o al contenuto dei post. Questo è il punto critico in cui devi agire.
Apri una nuova sessione SSH:
Mentre il ripristino è in pausa, apri una nuova sessione SSH per interagire con l’istanza in pausa senza interrompere il processo di ripristino:
cd /var/discourse
./launcher enter app
Accedi alla console Rails:
Accedi alla console Rails per interagire con il database:
rails c
Identifica i post problematici:
Questo restituirĂ i post in cui il contenuto cooked include percorsi di caricamento problematici o collegamenti onebox.
Modifica o elimina i post problematici:
Se individui i post problematici, hai due opzioni principali:
Modifica i caricamenti, se necessario:
Se il problema deriva da specifici caricamenti problematici:
Riprendi il processo di ripristino:
Dopo aver apportato le modifiche necessarie, torna alla sessione shell in pausa e premi un tasto qualsiasi per riprendere il processo di ripristino.
Considerazioni importanti:
Crea sempre un backup del file di database originale prima di modificare qualsiasi contenuto.
Concentrati sulla correzione di dati minimi, ovvero affronta solo il contenuto problematico senza apportare modifiche non necessarie.
Se il caricamento è esterno (un problema relativo a URL o CDN), puoi rimuovere manualmente il riferimento esterno durante il ripristino.
1 Mi Piace
TehLeo
(Chris)
20 Marzo 2025, 11:47pm
6
Sono riuscito a eliminare tutti e 9 i post usando il seguente comando Rails:
Post.find(id#).destroy
1 Mi Piace
Canapin
(Coin-coin le Canapin)
20 Marzo 2025, 11:49pm
7
L’hai eseguito mentre il ripristino era in pausa?
system
(system)
Chiuso
19 Aprile 2025, 11:50pm
8
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.