Converter tópicos em massa para MPs

Pretendo converter vários tópicos em grupos de mensagens privadas (PMs) para desvalorizar algumas categorias pouco utilizadas. Não podemos fazer isso pela interface do usuário (apenas um por um), nem encontrei uma maneira em massa de fazer isso.

Pelo que pude apurar, isso deve funcionar através do console:

  1. Identificar os tópicos por sua categoria
  2. Alterar topic.archetype para private_message
  3. Alterar topic.subtype para 'user_to_user'
  4. Tornar topic.category Null
  5. Em topic_groups (ou talvez topic_allowed_groups), adicionar uma linha com o group_id e topic_id relevantes

Essa abordagem faz sentido? Preciso primeiro entender a diferença entre essas tabelas de tópicos/grupos, é claro. E fazer isso em um sandbox para começar!!

1 curtida

Isso poderia funcionar. Além disso, se você não souber, pode fazer algo como

 tópicos = Tópico.where(categoria: 10)

  tópicos.update_all(arquétipo: xxx, categoria_tópico: nil)

Ou algo assim. Se você soubesse sobre update_all, isso não é novidade.

2 curtidas

Obrigado, Jay! Isso seria bom e rápido para a primeira metade. No entanto, também preciso garantir que eles acabem como Gerentes de Grupo (Group PMs).

Alguma ideia do que preciso fazer com as tabelas topic_groups / topic_allowed_groups? Não acho que possa resolver com um update_all para elas.

1 curtida