Mudei recentemente um site para o Discourse. O que eu não percebi foi que muitos nomes de usuário foram alterados e os novos nomes de usuário parecem usar parte do endereço de e-mail. Nunca vi nomes de usuário mudarem durante migrações anteriores. Como posso reverter isso?
Se você já entrou em produção, será difícil mudar as coisas, embora o nome de usuário original deva estar em um campo personalizado do usuário. Você realmente quer resolver esses problemas na fase de testes.
A menos que o script de migração esteja quebrado, o motivo pelo qual os nomes de usuário são alterados é que eles são incompatíveis com o formato de nome de usuário do Discourse.
Quais são alguns nomes de usuário que foram alterados? De onde você migrou?
Obrigado pela sua resposta Jay. Tivemos que colocar o site em modo de manutenção para fazer essas correções. foi estranho que as colunas de nome de usuário e nome tivessem sido alteradas. estamos vendo como podemos trocá-las. isso é muito confuso…
Você pode olhar em UserCustomField.where(user_id: some_id) para ver quais campos personalizados existem para esse usuário, que devem incluir o nome de usuário original dele.
Conseguimos trocar. Mas depois de trocar os perfis não abrem! Diz “Oops, página não encontrada”.
Só para confirmar, você atualizou sua página depois de remapear os nomes de usuário, certo? O Discourse ainda usará o nome antigo no lado do cliente até você recarregar, então se você remapeou os nomes e não recarregou, ele tentaria abrir perfis de usuário que não existem mais.
Obrigado. Verificaremos isso.
Além disso, não entendo como ele decide atribuir automaticamente a primeira metade do endereço de e-mail.
A plataforma preciosa permitia que os usuários criassem nomes de perfil usando espaços e caracteres especiais, e ela usava o ID do usuário para a URL.
Podemos usar o ID do usuário na URL e permitir a migração de nomes de perfil com espaços e caracteres especiais como estão?
Vimos que os nomes de usuário e nomes dos sims eram os mesmos.
Percebemos que alguns nomes agora contêm espaços.
Se trocarmos as seções de nome de usuário e nome, o Discourse poderá atribuir metade do ID de e-mail como nome de usuário para aqueles que não cumprem as diretrizes de nome de perfil.
E por que o discourse usaria endereços de e-mail em primeiro lugar? Risco de segurança
Não. O Discourse não permite espaços ou (a maioria dos) caracteres especiais em nomes de usuário. É por isso que eles foram reescritos.
Não entendi o que você está dizendo sobre a URL.
Ele tem que usar algo para gerar um nome de usuário.
Ele faz isso:
UserNameSuggester.suggest(
opts[:username].presence || opts[:name].presence || opts[:email],
Portanto, se você não tiver um nome de usuário ou um nome, ele recorrerá ao uso da primeira parte do endereço de e-mail.
Então podemos mudar para outra coisa? ou remover o ID de e-mail como opção?