Ho recentemente spostato un sito su Discourse. Quello che non avevo capito è che molti nomi utente degli utenti sono stati modificati e i nuovi nomi utente sembrano utilizzare una parte del loro indirizzo email. Non ho mai visto i nomi utente cambiare durante migrazioni precedenti. Come posso annullare questa operazione?
Se sei andato in produzione, sarà difficile cambiare le cose, anche se il nome utente originale dovrebbe trovarsi in un campo personalizzato dell’utente. Dovresti davvero risolvere questi problemi nella fase di test.
A meno che lo script di migrazione non sia danneggiato, il motivo per cui i nomi utente vengono modificati è che sono incompatibili con il formato del nome utente di Discourse.
Quali sono alcuni nomi utente che sono stati modificati? Da cosa sei migrato?
Grazie per la tua risposta Jay. Abbiamo dovuto mettere il sito in modalità di manutenzione per apportare queste correzioni. Era strano che le colonne username e name fossero state modificate. Stiamo vedendo come possiamo scambiarle. Questo è molto confuso…
Puoi guardare UserCustomField.where(user_id: some_id) per vedere quali campi personalizzati esistono per quell’utente, che dovrebbero includere il loro nome utente originale.
Siamo riusciti a scambiare. Ma dopo lo scambio i profili non si aprono! Dice “Oops, pagina non trovata”.
Solo per ricontrollare, hai aggiornato la tua pagina dopo aver rimappato i nomi utente? Discourse utilizzerà ancora il vecchio nome lato client finché non ricarichi, quindi se hai rimappato i nomi e non hai ricaricato, proverebbe ad aprire profili utente che non esistono più.
Grazie. Verificheremo.
Inoltre, non capisco come decida di assegnare automaticamente la prima metà dell’indirizzo email.
La preziosa piattaforma consentiva agli utenti di creare nomi di profilo utilizzando spazi e caratteri speciali, e utilizzava userID per l’URL.
Possiamo usare userID sull’URL e consentire la migrazione dei nomi di profilo con spazi e caratteri speciali così come sono?
Abbiamo visto che i nomi utente e i nomi dei sim erano gli stessi.
Ci siamo resi conto che alcuni nomi ora contengono spazi.
Se scambiamo le sezioni username e name, discourse potrebbe assegnare metà ID email come nome utente per quelli che non rispettano le linee guida del nome del profilo.
E perché Discourse dovrebbe usare indirizzi email in primo luogo? Rischio per la sicurezza
No. Discourse non consente spazi o (la maggior parte dei) caratteri speciali nei nomi utente. Ecco perché sono stati riscritti.
Non capisco cosa intendi riguardo all’URL.
Deve usare qualcosa per generare un nome utente.
Lo fa:
UserNameSuggester.suggest(
opts[:username].presence || opts[:name].presence || opts[:email],
Quindi, se non hai un nome utente o un nome, si ripiega sull’utilizzo della prima parte dell’indirizzo email.
Quindi possiamo cambiarlo in qualcos’altro? o rimuovere l’ID email come opzione?