Nuestro sitio de Discourse para usuarios de secundaria ha tenido mucho éxito. Demasiado éxito. Hemos tenido 2,3 millones de publicaciones y 2,9 millones de “me gusta” en los últimos 2 años desde que comenzamos en enero de 2021.
Nos gustaría limpiar un poco el lugar, para ahorrar costos y también para reducir los riesgos a largo plazo de hackeo o similares. Empezar de nuevo sería doloroso, pero el descubrimiento de añadir /print al final de la URL de un tema para crear páginas de 1000 comentarios para un PDF ayuda. No podemos encontrar (y realmente dudo) la existencia de una forma limpia de eliminar, por ejemplo, el año más antiguo de temas.
¿Alguna idea? ¿Necesitamos empezar de nuevo o hay alguna otra opción?
¡Hola! Me alegra saber que Discourse funcionó muy bien para tu proyecto
Solo para estar seguro de que entiendo; ¿tus criterios para que un tema sea elegible para su eliminación serían solo su antigüedad?
No hay una función incorporada en la interfaz que permita eso, pero podrías crear y activar manualmente un script de Rails que eliminaría los temas anteriores a una fecha determinada.
El contenido de las citas permanecería.
En cuanto a los enlaces internos a un tema eliminado, llevarían a una página de “no encontrado”.
Sí, las cargas se eliminarán después de 2 días por defecto (a menos que se utilicen en otro lugar, como dentro de una cita en otro tema), consulta la configuración de horas de período de gracia para la limpieza de cargas huérfanas.
Pero ten en cuenta que los temas y las publicaciones se eliminan de forma lógica. Se ocultan, pero aún se almacenan en la base de datos.
Añadiré que estoy cerca, pero no 100% seguro de lo que digo… Mejor esperar a que un usuario más experto responda aquí.
Una cosa que podrías hacer en el futuro es activar el chat, que supongo que es la mayor parte de lo que sucede, especialmente si deseas eliminarlo. De esa manera, las cosas se podan automáticamente (creo que el valor predeterminado es 90 días, lo cual probablemente sea suficiente).
¿Y NADA de lo que es viejo es importante? Y si algo lo es, ¿cómo vas a conservar lo bueno? ¿Por categoría?
Parece que Topic.destroy llama a PostDestroyer, así que creo que destruir esos temas debería hacer lo que quieres.
Te recomiendo que configures un sitio de prueba para hacer algunas pruebas antes de hacerlo en tu servidor de producción.
Sin embargo, podría tentarme a crear un conjunto de sitios de Discourse, tal vez uno por cada clase que se gradúa, para que puedas simplemente cerrarlos cuando sea el momento. También podrías tener uno separado para cosas de toda la escuela y que compartan un servidor de autenticación (ya sea el Discourse de toda la escuela o, con suerte, el servidor de autenticación que use tu escuela/distrito). Oh, o tal vez esto es para estudiantes de secundaria, pero no una escuela secundaria. Así que esta reorganización podría no tener sentido.