Convertir temas en masa a mensajes privados

Planeo convertir una serie de temas en mensajes grupales para depreciar algunas categorías que apenas se usan. No podemos hacer eso a través de la interfaz de usuario (solo uno por uno), ni he encontrado una forma masiva de hacerlo.

Hasta donde puedo ver, esto debería funcionar a través de la consola:

  1. Identificar los temas por su categoría
  2. Cambiar topic.archetype a private_message
  3. Cambiar topic.subtype a 'user_to_user'
  4. Hacer que topic.category sea Null
  5. En topic_groups (o quizás topic_allowed_groups), agregar una línea con el group_id y topic_id relevantes

¿Tiene sentido este enfoque? Necesito averiguar la diferencia entre esas tablas de temas/grupos primero, por supuesto. ¡Y hacerlo en un entorno de pruebas para empezar!

1 me gusta

Eso podría funcionar. Además, si no lo sabes, puedes hacer algo como

 topics = Topic.where(category: 10)

  topics.update_all(archetype: xxx, topic_category: nil)

O algo así. Si sabías sobre update_all, esto no es noticia.

2 Me gusta

¡Gracias Jay! Eso sería bueno y rápido para la primera mitad. Sin embargo, también tengo que asegurarme de que terminen como Group PMs.

¿Alguna idea de qué tengo que hacer con las tablas topic_groups / topic_allowed_groups? No creo que pueda salirme con la mía con un update_all para ellas.

1 me gusta