Ciao - sto cercando di caricare un file CSV contenente numerosi tag, ma ogni volta ricevo un messaggio di errore che recita: “Spiacenti, si è verificato un errore durante il caricamento del file. Riprova.”
Nei log del pannello di amministrazione compare quanto segue:
Messaggio (8 copie riportate)
Impossibile elaborare correttamente la risposta intercettata: Validazione fallita: Il nome non è valido
Backtrace
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/validations.rb:80:in `raise_validation_error'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/validations.rb:53:in `save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:318:in `block in save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:375:in `block in with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/database_statements.rb:278:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:212:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:366:in `with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:318:in `save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/suppressor.rb:48:in `save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/persistence.rb:55:in `create!'
Ho provato a creare un tag fittizio, ovvero una sola voce nel file CSV (ad esempio, la parola “java”), ma ricevo lo stesso messaggio di errore.
Per tua informazione, ho installato Discourse su DigitalOcean seguendo la guida ufficiale di installazione e tutto il resto funziona correttamente.
Grazie @codinghorror - fammi sapere se trovi qualcosa. Se può essere d’aiuto, sto eseguendo la versione 2.5.0.beta7 ( 14dc6f350e ) su un Droplet con 4 GB di RAM e 80 GB di SSD.
Oltre a questo, ho installato i plugin akismet, formatting-toolbar e discourse-voting.
Ho appena testato questo su try.discourse.org. Ho usato un editor di testo base per creare un file CSV chiamato tags.csv contenente solo la parola java e sono riuscito a utilizzare lo strumento di caricamento massivo dei tag per aggiungere il nuovo tag senza problemi.
Il sito try.discourse.org ha akismet e discourse-voting, e dubito fortemente che il plugin formatting-toolbar possa entrare in conflitto in qualche modo tale da generare l’errore che stai riscontrando.
Riesci a caricare file senza problemi in altri contesti (post, temi, ecc.)?
Il caricamento fallisce ancora. Potrebbe essere legato ai permessi? Sono l’amministratore del sito, quindi presumo di avere tutti i permessi necessari per farlo.
Questa volta sto utilizzando la versione 2.5.0.beta7 ( 70e50a2255 ).
Fammi sapere se c’è altro che vorresti che provassi. Grazie!
Hmm, ho provato a rinominare il mio file in tags-1.csv e non sono comunque riuscito a riprodurre l’errore. Se lo rimetti a tags-1.csv e provi a caricarlo, fallisce di nuovo? Mi chiedo se nel nome originale del file ci fosse qualcos’altro di strano e se rinominarlo in tags.csv abbia in qualche modo risolto il problema.
No, non funziona ancora per me. Quello che sto facendo sul mio Mac è:
$ vi tags-1.csv
Poi i per entrare in modalità modifica java esc per uscire dalla modalità modifica :wq e Invio per salvare ed uscire.
È tutto. Anche questo fallisce. Inizialmente pensavo potesse essere dovuto a un file Excel esportato in CSV, ma anche la modifica da riga di comando genera problemi.
Per ora continuerò con tags.csv, ma se pensi che sia importante e desideri che esegua dei test, sarò felice di farlo. La stessa cosa è accaduta su due droplet diversi con installazioni fresche, il che mi ha preoccupato.
Vedo un altro problema (di nuovo, non sono sicuro se sia correlato al mio ambiente).
I miei tag sono un elenco di linguaggi di programmazione. Avevo c++ e c# in quell’elenco e, una volta rimossi dal file tags.csv, il caricamento in massa è andato a buon fine. Mi chiedo se abbia a che fare con il fatto che il tag termina con un carattere speciale. Di nuovo, potrebbe essere solo un problema mio
Sì! È sicuramente il problema. Pensavo che, dato il tuo ultimo messaggio, stessimo lavorando solo con la parola java nel file. Dovresti usare qualcosa come cpp, c-sharp, ecc.
Sì, penso che sarebbe l’ideale. L’errore attuale non offre all’utente molto su cui basarsi:
Spiacenti, si è verificato un errore durante il caricamento del file. Riprova.
Nota interessante di cui non ero a conoscenza: quando si tenta di creare un tag nei contesti normali di creazione o modifica di un argomento, sembra che rimuoviamo silenziosamente tutti i simboli. Quindi, inserendo C++, verrebbe suggerito C come tag.
Stavo per modificare il testo (per indicare la possibilità di tag non validi), ma credo che quel testo si applichi a tutti i caricamenti, quindi non sarebbe sempre accurato.
A mio avviso, un modo rapido sarebbe aggiungere un paio di frasi nella sezione Tag delle Impostazioni di Amministrazione, descrivendo le restrizioni sui nomi dei tag.
Sì, sembra proprio di sì. Ho individuato dove viene generato l’errore generico nel codice di caricamento dei tag, quindi proverò a creare un errore più specifico per questo caso in una PR.