¿Herramienta de limpieza de bases de datos?

¿Discourse tiene una herramienta de limpieza de base de datos?

Esta herramienta eliminaría cualquier dato de configuración adicional de la base de datos. La herramienta eliminaría cualquier columna añadida, filas de configuración y tablas de la base de datos que no estén presentes en la instalación predeterminada de Discourse. La herramienta dejaría intacto todo el contenido y la configuración del sitio. El enfoque principal sería eliminar todos los componentes de plugins y temas de la base de datos.

La mejor solución que se me ocurre es configurar una nueva instancia a partir de una copia de seguridad :slight_smile:

Esa es la forma más limpia de conseguirlo manteniendo los datos de tu foro sin mucho esfuerzo manual.

Sin embargo, creo que las copias de seguridad incluirán todas las tablas que existían en la instancia de la que hiciste la copia de seguridad y eso puede incluir las creadas por plugins, incluso si no has instalado el plugin en la nueva instancia.

Si quieres ensuciarte las manos, puedes usar las tareas de rake para eliminar una base de datos y crear una nueva y ejecutar migraciones, pero eso eliminará todos tus datos.

Esta es la razón por la que “instalar un nuevo entorno y restaurar una copia de seguridad” no es la mejor solución. Todavía tienes restos de componentes y plugins antiguos colgados en la base de datos.

Debería existir una herramienta de último recurso que elimine todos los cambios de componentes y plugins en la base de datos y deje intactos los datos y la configuración del sitio. Esta herramienta podría ejecutarse antes de recurrir a la nueva solución de instalación.

Sospecho que será difícil de construir:

  1. Algunas migraciones son irreversibles
  2. Muchas migraciones se almacenan dentro de plugins que no estarán allí si no están instalados, por lo que no hay nada que revertir.

Pero intenta construirlo y mira si puedes superar esos problemas.

1 me gusta

Entonces, básicamente, ¿no tenemos ninguna herramienta para mover solo contenido humano, incluidas categorías y etiquetas?

Estás usando el término “migrations”. ¿Qué quieres decir con este término?

Uso el término para referirme a la “migración” de datos y contenido de usuario a un sistema. Esto nunca debería cambiar la estructura predeterminada de la base de datos.

Lo único que podría cambiar la estructura de una base de datos es un plugin. A menos que Discourse permita otras formas para que las personas alteren la estructura de la base de datos.

1 me gusta

Están en la carpeta /db/migrations de Discourse y cada plugin (que las usa)

1 me gusta