Hai esperienza nell'importare utenti e argomenti da file CSV?

Ho alcuni (82) utenti e (133) post che vorrei trasferire da un tentativo fallito su una piattaforma precedente. Pochi, ma sufficienti a rendere il copia e incolla oneroso. Spero provvisoriamente di provare lo script di importazione CSV. Sarebbe la prima volta che lavoro con uno script Ruby.

Ho preparato file CSV secondo discourse/script/import_scripts/csv_importer.rb at main · discourse/discourse · GitHub

Ma a meno che non mi sfugga qualcosa, lo script di importazione CSV non sembra completo. Non vedo alcuna disposizione nei requisiti CSV o nello script per associare i post agli argomenti padre. Non sono sicuro di come questo finirebbe per apparire.

Vorrei anche che le date originali dei post fossero conservate, ma qui non c’è un campo per questo.

L’importatore Zendesk si occupa dei campi “topic_id” e “created_at”. Non so se l’importatore Zendesk sarebbe una scelta migliore, o se fallirebbe sui campi che i miei dati CSV non hanno. (Non provengo da Zendesk.)

Mi chiedo se qualcuno abbia esperienza con l’importatore CSV così com’è, o magari l’abbia modificato per aggiungere funzionalità.

Ho usato l’importatore CSV prima che fosse incorporato nel core (e ho sponsorizzato il suo sviluppo da parte di @pfaffman).

Sembrava preservare i post nei topic, così come le date originali dei post. Perché non provarlo su un’istanza di staging (o semplicemente dopo un backup) e vedere cosa succede?

Se ci sono problemi, sarebbe bene correggere lo script, ma sospetto che farà il lavoro per te senza problemi.

1 Mi Piace

Finalmente torno a questo dopo averlo accantonato per un po’. Sono disposto a fare un backup e provare qualcosa se vedo una possibilità di successo, ma desidero un po’ più di fiducia qui. Ho poca esperienza di scripting ma mi piacerebbe davvero capire come il l’importatore csv conserverebbe i post (risposte) e le date, come suggerisce @nathank, poiché lo script non sembra definire alcuna gestione di essi.

Importa campi limitati per: utenti, email, campi utente personalizzati, categorie e argomenti.

Non ho bisogno di campi utente personalizzati o nuove categorie, quindi i CSV pertinenti e i loro campi specificati sono:

 == Formato file CSV
Nome file: users
intestazioni: id,username

Nome file: emails
intestazioni: user_id,email

Nome file: topics_new_users
intestazioni: id,user_id,title,category_id,raw

Nome file: topics_existing_users
intestazioni: id,user_id,title,category_id,raw

Da un’occhiata a questo modello di dati, gli argomenti e i post di Discourse sono due creature diverse con alcuni campi distintivi:

Non vedo nulla nello script per gestire i post, o le date.

Forse dovrei raggruppare i dati in arrivo di argomenti e post, ma in tal caso, come inferirebbe Discourse la relazione argomento/risposta? È solo la sequenza dell’input? Le risposte sono correlate a un argomento che ha la prima apparizione di un ID condiviso? Tutto ciò che dice sugli ID è:
ad eccezione di topics_existing_users, gli ID nei dati possono essere qualsiasi cosa purché siano coerenti tra i file.

Se allo script non manca qualcosa, allora devo essere io. Apprezzo qualsiasi pensiero chiarificatore!