Importa utenti tramite CSV

So che esiste un modo tramite ‘frontend’ per invitare gli utenti tramite CSV, tuttavia questo non funzionerà nel mio caso, poiché invierà un’email alle migliaia di persone che verranno aggiunte al sito.

Quando provo ad aggiungerlo tramite la CLI, ottengo i seguenti errori.

/var/www/discourse# rails runner script/import_scripts/csv_importer.rb /var/www/discourse/tmp/users.csv
Caricamento dei gruppi esistenti…
Caricamento degli utenti esistenti…
Caricamento delle categorie esistenti…
Caricamento dei post esistenti…
Caricamento degli argomenti esistenti…
File non trovato: /var/www/discourse/tmp/emails.csv
File non trovato: /var/www/discourse/tmp/custom_fields.csv
bundler: impossibile caricare il comando: script/rails (script/rails)
/var/www/discourse/script/import_scripts/csv_importer.rb:29:in initialize': undefined method headers’ for nil (NoMethodError)

@imported_custom_fields_names = @imported_custom_fields.headers.drop(1)
                                                       ^^^^^^^

Qualche idea su cosa potrebbe succedere?

Questo script è uno script di migrazione, non è destinato a eseguire il compito singolare di aggiungere utenti.

Vuoi solo creare un numero maggiore di account utente reali, o sono per i test?

Aha! Ho visto importatore, non migrazione! Grazie per il suggerimento.

Voglio importare una grande quantità di utenti tramite CSV

Importa e migra sono per lo più sinonimi.

Dovrebbe svolgere la funzione di creare tutti quegli utenti (non avranno password, quindi dovranno ottenerne una, probabilmente facendosi inviare un’email).

Probabilmente dovrai capire un po’ di programmazione per farlo funzionare.

Innanzitutto, buon compleanno.

Ho pochissime competenze di programmazione. Ho supposto che sarebbe stato semplice avviare il file import.rb “puntato” sul file users.csv.

Gli errori che ha prodotto non hanno per me alcun senso. Ho guardato la riga 29 dello script di importazione e faceva riferimento alle intestazioni, quindi ho supposto che si riferisse alle colonne del file csv, quindi ho passato del tempo a pasticciare con quello, senza successo.

Beh, non sei andato molto lontano dato che non ha nemmeno aperto il tuo csv.

È una di quelle cose frustranti per cui potrebbero volerci 30 secondi o ore.

Ma potresti provare a copiare il file lì. È complicato perché è un posto nel file system del computer e un altro all’interno del container. Una volta risolto questo, puoi iniziare a pasticciare con le intestazioni delle colonne.

A volte c’è una soluzione semplice al problema originale[1].

Disabilita le email, importa gli utenti, quindi riattiva le email.


  1. vedi problema x-y ↩︎

1 Mi Piace

Aha, ma il problema qui è che penso che l’importatore abbia rilevato users.csv.

Non ho né voglio importare emails.csv, ecc.

O si tratta di un importatore multipart? Dove gli utenti (nomi) sono in un csv e le email sono in un altro csv (emails.csv)

Sembra che stia trovando il file users.csv poiché non sta restituendo un errore a riguardo.