Sposta i topic da un'istanza Discourse a un'altra

Devi spostare qualcosa da un’istanza di Discourse a un’altra?

Esiste uno strumento da riga di comando per esportare un argomento, un insieme di argomenti o un’intera categoria, e un altro per importarli nell’altra estremità.

Esportazione/Importazione degli Argomenti

  • uno o più argomenti e le loro risposte
  • gli utenti che hanno postato nell’argomento

Esportazione/Importazione delle Categorie

  • la categoria e tutte le sue sottocategorie
  • le sue impostazioni di sicurezza
  • i gruppi personalizzati menzionati nelle impostazioni di sicurezza
    • :warning: se uno qualsiasi dei gruppi ha abilitata la ‘richiesta di iscrizione’, il processo andrà in crash. Disattivala prima dell’esportazione
  • tutti gli argomenti e i post nella categoria e nelle sottocategorie
  • tutti gli utenti che hanno postato e li assegna ai gruppi

Inizio: Identifica gli ID

Per prima cosa, identifica l’ID (o gli ID) dell’=Esportazione= che desideri esportare. Lo trovi alla fine dell’URL utilizzato per accedervi.

  • https://meta.discourse.org/t/how-to-contribute-to-discourse/53797

  • https://meta.discourse.org/t/how-to-contribute-to-discourse/53797/12
    (in questo caso ti trovi nel mezzo di un argomento - prendi il primo numero)

  • https://meta.discourse.org/c/howto/faq/4

ID della Categoria o dell’Argomento

Più argomenti

Puoi selezionare più argomenti aggiungendo gli ID separati da uno spazio; questo funziona nel campo sopra (non credo che funzioni per le categorie):

  • 53797 200943 124096

Esegui lo Script di Esportazione

Lo strumento può essere eseguito come utente root all’interno del container:

cd /var/discourse
./launcher enter app

Esegui questo comando:

discourse export_=Export= =ID=

L’output dovrebbe assomigliare a questo:

Avvio dell’esportazione di =Export=…

Da dove provengono tutti i nuovi utenti?
Esportazione salvata in =Export=-export-2021-08-27-015437.json

Fatto

Sposta il File Esportato

Il file .json esportato deve essere spostato dall’interno del container dell’applicazione dove hai eseguito l’esportazione all’interno del container dell’istanza di destinazione. Questo richiede alcuni passaggi.

Copialo all’esterno

Esci dal container se non l’hai già fatto

exit

Dovresti ora avere un prompt come questo:

root@yourserver:/var/discourse

Usa docker per copiare il file fuori dal container (non credo tu possa spostarlo)

docker cp app:/var/www/discourse/=FileName= .

Spostalo nell’altra istanza

Questo va oltre la portata di questa guida, ma questo potrebbe aiutarti a raggiungerlo:

Copialo nel container nell’istanza di destinazione

Accedi alla tua istanza di destinazione come root tramite SSH e vai alla directory di Discourse:

cd /var/discourse

Usa di nuovo docker per copiare il file nell’altro container

docker cp =FileName= app:/var/www/discourse

Importa i Contenuti

Entra nel container nell’istanza di destinazione:

./launcher enter app

Esegui lo script di importazione

discourse import_=Export= =FileName=

:cake: Fatto!

Potrebbe essere necessario sistemare alcuni dettagli, ma dovrebbe essere tutto completato.

Suggerimenti Avanzati

Gem Ruby Mancante

Durante un’importazione complessa di una categoria, la mia istanza mancava del ‘Listen’ Ruby.
Questo è stato risolto facendo quanto segue: (usando l’utente Discourse all’interno del container)

./launcher enter app
su discourse
bundle config --delete without
bundle config --delete with
bundle install
exit
exit

Questo ha interrotto la console rails, rendendo necessario un rebuild successivo

./launcher rebuild app

Multisito

In un ambiente multisito, usa la variabile d’ambiente RAILS_DB.

RAILS_DB=xxxmoves discourse export_=Export= =ID=
RAILS_DB=dancerehab discourse import_=Export= =FileName=

Segnala i bug nella categoria Contribute > Bug e richiedi miglioramenti nella categoria Contribute > Feature.


Argomenti Correlati


Ultimo revisione da @SaraDev il 2022-07-13T00:00:00Z

45 Mi Piace
UI: Topic and Category Export/Import
CLI command to migrate a single category
Moving topics between sites?
Category/Topic export fails with error "database "discourse_development" does not exist"
Easiest way to export a single topic?
Saving a Conversation
Migrate user custom fields to another instance
Error Importing Categories from a Discourse Instance to Another
How to export user data from a category on a hosted site
Import CSV User Activity from one Discourse to Another
How use API to convert topic in discourse1.com to discourse2.com
Can sub-forums of the same instance split up and move to new independent servers (or discourse instances)?
Help migrating category from one instance to another without admin on the source instance
I wonder how to add hundreds of users into a group? Is there any api?
Adding default sets of topics, categories and users to a new Discourse
Downloading Content
Can we combine 2 separate discourse sites?
Tracking and resolving a schema drift cause
Merge two Discourse forums into one
Moving topics from a forum on one website to a forum on another website
Transfer topics between forums?
Forum Aquisition
Transfering inbox group messages to another instance?
Transfering inbox group messages to another instance?
Imported categories are not in parent category
Copy categories / topics
How to download Comments and Topics
Selective backups skipping settings and config
Test driving admin/moderation features
Add backup to existing Discourse instance
Merging two Discourse forums
Migrating vBulletin onto existing and live Discourse instance
Migrate topics from one discourse instance to another?
A system where people have to start at lesson 1, and cannot see the other lessons?
How to divide my community into 2 parts