Grazie per aver fornito questa guida e lo script di importazione! L’ho usato con successo con un gruppo Google, utilizzando Google Takeout. Ho semplicemente inserito il file .mbox nella directory corretta ed eseguito lo script.
Ho avuto una domanda sull’importazione di email che hanno genitori non presenti nel file .mbox. Ad esempio, ci sono molte discussioni nel nostro gruppo che sono iniziate da un inoltro di un’email che non è stata inviata al gruppo, o aggiungendo il gruppo alla lista di risposta nel mezzo di una conversazione per includerli.
Attualmente, durante l’importazione, sembra che queste email precedenti non siano presenti. È possibile trovarle, se si fa clic sull’icona dell’email e si visualizza l’HTML. Ero curioso di sapere se qualcun altro ha riscontrato la stessa situazione e avesse soluzioni. Potrei immaginare di includere la catena di email precedente nel post o di provare a analizzarla ed estrarre un numero di messaggi da essa e aggiungerli tutti.
Dovresti trovare un modo per generare quei messaggi dal testo citato e aggiungerli al file mbox (probabilmente con intestazioni Id) prima di eseguire lo script di importazione.
Questo è davvero eccellente. Ma ho alcuni problemi con alcune email che arrivano su Discourse con un’email iniziale e poi le risposte in formato mbox nello stesso post, non formattate. Non sono sicuro di cosa stia causando questo.
La domanda è: come posso eliminare tutte le email importate (20 anni di valore) senza eliminare e ricreare l’istanza di Discourse di destinazione?
Sono consapevole che il requisito RAM consigliato sia 8 GB. Ho provato a importare 20 anni di post su una macchina virtuale da 2 GB e ha funzionato per un po’ prima di bloccarsi con il messaggio ‘killed’. Le macchine da 8 GB su provider di hosting come DigitalOcean sono costose (per me). C’è un modo per farlo con meno memoria? Importare in batch più piccoli, magari?
Forse eliminare quelle categorie e poi eliminare i campi personalizzati degli argomenti associati.
No, non credo che si possa fare molto con un’importazione su una macchina piccola. Potresti provare su un computer desktop, ma poi avresti problemi di larghezza di banda per riportare il database su Internet.
So che non c’è molta attività su questo thread, ma non riesco a farlo funzionare correttamente. Molte delle email in formato mbox che importo non vengono suddivise correttamente. Le righe From appaiono così:
From MAILER-DAEMON Tue Nov 01 05:57:09 2022
Ma alcuni messaggi vengono importati correttamente, poi nello stesso corpo hanno elementi in formato mbox grezzo che iniziano con la tipica riga From. In altre parole, non vengono suddivisi. Non vedo la necessità di modificare l’espressione regolare che esegue la suddivisione e non conosco Ruby, quindi non posso eseguire il debug dello script di importazione.
Non so da dove andare avanti. Ci sono 20 anni di messaggi da importare, quindi non posso esaminare manualmente i messaggi importati per correggerli. In breve, questo script non funziona per me. Perché sarei l’unico a cui succede?
Non succede solo a te. Il mio primo lavoro retribuito su Discourse è stato per mesi a ripulire vecchi file mbox che erano stati modificati manualmente per qualche motivo che non riesco a ricordare.
Sembra che tu debba modificare le espressioni regolari o trovare un altro modo per correggere i messaggi errati. Un modo è usare qualche altro strumento per dividere i messaggi in uno per file.
A titolo informativo, ho scritto diversi script di importazione prima di conoscere Ruby.
Ogni importazione è unica. Con 20 anni di dati, è molto probabile che avrai diversi problemi poiché le cose sono cambiate nei vari sistemi utilizzati.
Voglio importare 20 anni di messaggi dal mio sistema mailman2 in una directory di archivio, ma non voglio creare ID utente (nemmeno quelli provvisori) per loro, poiché molti dei nostri iscritti si sono trasferiti o sono deceduti e ciò creerebbe molti account che occuperebbero solo spazio.
Posso importarli tutti sotto lo stesso ID utente (forse ‘archive’)?
E questa potrebbe essere una domanda stupida, ma poiché l’app è disattivata durante il processo di importazione, ciò significa che gli utenti che si sono iscritti per ricevere email sui nuovi post non verranno inondati di email su tutti gli archivi appena caricati?
Puoi commentare la funzione import_users e tutti i messaggi saranno di proprietà del sistema.
Non risparmierai molto spazio.
Nessun utente riceverà email finché non avrà utilizzato il processo “password dimenticata” per accedere al proprio account. Se stai importando questi dati in una community esistente, allora credo che gli utenti riceveranno notifiche sui nuovi messaggi creati dallo script di importazione.
Grazie, stavo esaminando lo script di importazione e ho pensato che potrei semplicemente disabilitare la sezione dei nuovi utenti. Testarlo è nella mia lista.
Non si tratta di spazio su disco, ma di avere potenzialmente centinaia di account utente in staging che non verranno mai utilizzati, quindi è più una questione di spazio mentale o di un elenco di utenti molto lungo.
Non riesco a trovare il file import_mbox.sh e quando provo a eseguire direttamente lo script mbox.rb, ricevo un sacco di errori Ruby:
root@lists-import:/var/www/discourse/script/import_scripts# ruby mbox.rb mbox
fatal: detected dubious ownership in repository at ‘/var/www/discourse’
To add an exception for this directory, call:
Saluti a tutti. Che bella guida. Grazie a Gerhard e agli altri per aver contribuito.
Qualcuno di voi l’ha adattata per Lyris? Sono interessato a migrare un’installazione storica e vorrei capire se ci sono state preoccupazioni particolari che hanno incontrato in un progetto simile.
per essere più specifici, ho modificato con successo il codice che ha permesso l’importazione, aggiungendo .dup alla riga 447 del file /var/www/discourse/script/import_scripts/base.rb:
params[:name].dup.strip!
Una cosa non è chiara: come posso importare in uno dei siti multisito?
Qualcuno ha riscontrato un errore “impossibile modificare String congelata”? Il mio index.db viene creato correttamente, ma fallisce durante la creazione delle categorie.
root@xxxxxxxxxx:/var/www/discourse# import_mbox.sh
L'importazione mbox è in corso...
Caricamento gruppi esistenti...
Caricamento utenti esistenti...
Caricamento categorie esistenti...
Caricamento post esistenti...
Caricamento argomenti esistenti...
creazione indice
indicizzazione file in /shared/import/data/xxxxx-xxxxxxx@xxxxxxx.com
indicizzazione /shared/import/data/xxxxx-xxxxxxx@xxxxxxx.com/export.mbox
indicizzazione risposte e utenti
creazione categorie
/var/www/discourse/script/import_scripts/base.rb:447:in `strip!': **impossibile modificare String congelata: \"xxxxx-xxxxxxx@xxxxxxx.com\" (****FrozenError****)**
from /var/www/discourse/script/import_scripts/base.rb:447:in `block in create_categories'
from /var/www/discourse/script/import_scripts/base.rb:438:in `each'
from /var/www/discourse/script/import_scripts/base.rb:438:in `create_categories'
from /var/www/discourse/script/import_scripts/mbox/importer.rb:50:in `import_categories'
from /var/www/discourse/script/import_scripts/mbox/importer.rb:34:in `execute'
from /var/www/discourse/script/import_scripts/base.rb:47:in `perform'
from script/import_scripts/mbox.rb:13:in `<module:Mbox>'
from script/import_scripts/mbox.rb:11:in `<module:ImportScripts>'
from script/import_scripts/mbox.rb:10:in `<main>'