Encontrei um problema ao atualizar a partir de v2026.3.0-latest. A tarefa rake db:seed_fu falha ao atingir 002_groups.rb com o seguinte erro:
ActiveRecord::RecordInvalid: Validation failed: Name has already been taken. (ActiveRecord::RecordInvalid)
A falha ocorre exatamente quando o seedador tenta inicializar os novos grupos do sistema (ID 4: anonymous e ID 5: logged_in_users).
Confirmei isso no console do Rails. Uma verificação manual falha na validação, mas contornando a validação, o banco de dados aceita o registro sem problemas:
# Isso falha com „Name has already been taken"
g = Group.new(id: 4, name: „anonymous", automatic: true)
g.valid?
# Isso funciona perfeitamente, provando que não há conflito real
g.save(validate: false)
Consegui superar esse obstáculo criando manualmente esses novos grupos do sistema:
Isso acontece quando você já possui um grupo ou usuário (!!!) chamado anonymous.
Temos muitos fóruns onde anonymous foi usado como nome de usuário após uma importação.
O commit menciona
Este PR introduz dois novos grupos automáticos: anonymous_users e logged_in_users
mas, aparentemente, o grupo acabou sendo chamado de anonymous sem o _users.
Isso é uma pena porque:
anonymous deixa incerto se é um grupo de usuários ou um único usuário
o risco de conflito com um grupo ou usuário existente é muito maior sem o _users
Soluções sugeridas:
1 - nomear o grupo como anonymous_users afinal, está mais alinhado com logged_in_users e reduz enormemente o risco de conflito
2 - pelo menos detectar o conflito e renomear o usuário ou grupo existente em vez de gerar um erro
Sua migração verifica os grupos existentes. No entanto, ela também deve verificar os usuários existentes, pois usuários e grupos compartilham um mesmo namespace e não é possível ter um grupo com o mesmo nome de um usuário.
Hmm, tudo bem, isso é bem chato… Estou abrindo um PR agora para fazer isso:
O que, como você disse, deve reduzir drasticamente a chance de colisão. Duvido muito que exista algum usuário chamado anonymous_users, então não acho que seja necessária uma verificação ou migração automatizada se eu fizer essa renomeação.
Inicialmente, não. Ele estava falhando nas migrações durante o processo padrão de reconstrução, foi assim que o problema foi chamado à minha atenção inicialmente e eu o rastreie. Depois, eu estava executando a tarefa rake manualmente para solucionar o problema.