¿Cómo eliminar TODO de mi foro y solo dejar los usuarios?

Esa es, de lejos, la forma más rápida y sencilla.
Descarga tu lista de usuarios como sugirió @JammyDodger, desde /admin/users/list/active, descarga el archivo CSV, límpialo para conservar solo las direcciones de correo electrónico y realiza una invitación masiva desde tu interfaz de administrador desde una nueva instalación de Discourse. Tus usuarios tendrán que crear una cuenta de nuevo.

Si quieres eliminar todos los datos excepto algunos usuarios, no hay una forma fácil de hacerlo y solo se me ocurre que intentar podría fácilmente llevar a un foro roto.

Si quieres exportar la mayoría de los datos de tus usuarios (su propia configuración y cosas), también será difícil y requerirá crear un script de Ruby on Rails. Además, podrías enfrentarte a problemas en los que no he pensado. Si no estás seguro de cómo hacerlo, te sugiero que te ciñas a la primera solución o publiques en Marketplace si tienes presupuesto.

1 me gusta

Eso es cierto. Pero si quieres vivir peligrosamente, puedes probar esto:

./launcher enter app
discourse backup
rails c
Topic.where("user_id > 1").destroy_all
Upload.where("user_id > 1").destroy_all
exit
exit

Creo que eliminar temas debería eliminar publicaciones, pero también podrías agregar un

 Post.where("user_id > 0").destroy_all

El > 1 dejará los temas creados por el primer usuario. Si también quieres eliminarlos, cámbialo a > 0, lo que dejará los temas creados por @system. Creo que te arrepentirás mucho si eliminas esos.

Esto hace una copia de seguridad en caso de que destruya todo.

Esto es casi con toda seguridad una mala idea, pero es lo que pediste.

1 me gusta

¡De hecho! Existe la clase PostDestroyer para eso, que realiza una gran cantidad de limpieza adicional necesaria.

@xebiyen puedes usar esta tarea de rake para destruir todos los temas en todas las categorías, pero dejar las categorías y los usuarios intactos:

$ ./bin/rake destroy:topics_all_categories
4 Me gusta

Genial, no conocía esta tarea de rake. ¿Eliminará los temas de “Acerca de”, lo que sería un efecto secundario no deseado?

No, el método que utiliza los deja solos por defecto, y la tarea de rake no cambia ese valor predeterminado:

:rainbow:

1 me gusta

Gracias por confirmarlo. Quería estar seguro, porque uno o dos de los métodos recomendados para otras cosas que figuran en Administrative Bulk Operations tuvieron efectos secundarios no deseados la última vez que los usé.

Usé uno para mover temas de una categoría a otra, pero movió el tema “acerca de” junto con los temas regulares. Sin embargo, es posible que haya usado un script de rails en lugar de la tarea rake. No estoy seguro. :thinking:

También usé el método rake “mover todos los temas con una etiqueta específica a una sola categoría”, que no pobló correctamente algunas tablas relacionadas con etiquetas en la base de datos.


edición: ¡oh, es mi pastel de cumpleaños! Si tan solo el pastel fuera real… ¿Pero tal vez lo sea?

2 Me gusta

¡Gracias! Había olvidado esa clase y no conocía la tarea de rake (¡o no recuerdo haberla olvidado!)

2 Me gusta

¿Qué comando debo usar antes de este comando?

@pfaffman @Canapin ¿es su comando @leonardo la mejor solución entonces?

Puedes intentarlo tú mismo, pero haz una copia de seguridad primero.
Ve a tu carpeta de discourse en la línea de comandos.
Entra en el contenedor con ./launcher enter app.
Luego escribe rake destroy:topics_all_categories.

Míralo en acción (mi instancia de prueba es muy lenta):

4 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.