---
title: "Limpieza correcta BD en ETECSA"
url: "https://fcuba.net/threads/3868-limpieza-correcta-bd-en-etecsa"
forum: "Xenforo"
author: "Lucien"
published: "2020-11-26T09:25:52.000Z"
updated: "2020-11-26T09:50:48.000Z"
page: 1
pages: 1
---

# Limpieza correcta BD en ETECSA

In [Xenforo](https://fcuba.net/forums/165-xenforo.md), started by Lucien on 2020-11-26T09:25:52.000Z.

## Lucien, [2020-11-26T09:25:52.000Z](https://fcuba.net/threads/3868-limpieza-correcta-bd-en-etecsa#post-34613)

> Como nota aclaratoria este tutorial debería funcionar en cualquier entorno pero me voy a centrar en el proporcionado por ETECSA para eso.
>
> **Requisitos:** Phpmyadmin y una instalación de Xenforo a la que se le quiera hacer un mantenimiento (limpiar los perfiles, reacciones y conversaciones para liberar espacio) .
>
> 1- Logearse en el phpmyadmin y buscar la *Base de Datos* correspondiente, en este caso tendrá de nombre **bd\_alterego**.
>
> 2- El primer paso y pienso yo que es el más importante es el de limpiar las reacciones para que no aparezcan una vez borremos todo el contenido.
>
> Una breve explicación de como se almacenan las reacciones en xenforo 2:
>
> Todas las reacciones se guardan en una tabla llamada : **xf\_reaction\_content **, esta tabla tiene varias columnas , entre las que se encuentran:
>
> **content\_type** que indica el tipo de contenido al que se está reaccionando, este puede ser:
>
> *post : *mensaje en un tema , esta nos interesa preservar
> *profile\_post: *a un estado que haya publicado el usuario en su perfil
> *profile\_post\_comment: *a algún comentario en los perfiles
> *conversation\_message: *a las conversaciones privadas
>
> **reaction\_id: **que almacena la reacción que el usuario le dio al contenido , por ejemplo el usuario reaccionó con la id 1 (Like) a un **profile\_post **, osea que le dio un like al estado.
>
> Una vez explicado esto el metodo más efectivo para limpiar esa información que pude encontrar es hacer que las reacciones que vayamos a quitar tengan un valor 0 , para que así no afecte a la hora de borrarse.
>
> 4- En el Phpmyadmin luego de haber seleccionado la base de datos vamos al apartado **SQL **y escribimos los siguientes comandos:
>
> ```sql
> UPDATE `xf_reaction_content` SET `reaction_id` = 0 WHERE `content_type` = 'profile_post'
> ```
>
> Este comando hará que todos los mensajes de perfil tengan la reacción 0 , que no existe, por lo tanto no tendrán (cabe destacar que aún se sigue mostrando porque hace falta reconstruir eso)
>
> 5- Lo mismo que el comando anterior pero esta vez para los comentarios a los estados
>
> ```sql
> UPDATE `xf_reaction_content` SET `reaction_id` = 0 WHERE `content_type` = 'profile_post_comment'
> ```
>
> 6- Este limpia todas las reacciones en las conversaciones privadas.
>
> ```sql
> UPDATE `xf_reaction_content` SET `reaction_id` = 0 WHERE `content_type` = 'conversation_message'
> ```
>
> Listo :) , ya hemos dado valor cero a las reacciones prescindibles , ahora es tiempo de eliminarlas porque queremos tener de nuevo ese espacio para nosotros.
>
> 7- y eso se hace con este simple comando:
>
> ```sql
> DELETE FROM  xf_reaction_content WHERE reaction_id = '0'
> ```
>
> ¿Que hace este? pues elimina todas las reacciones que tengan valor 0 , que son las que previamente hemos marcado en los pasos anteriores)
>
> la base de datos se llevaba unos 6.4 MiB a la hora de hacer esta ¨purga¨ y una vez corrido el paso numero 7 se redujo a 4.8 , y mientras más usuarios y conversaciones se tenga más se puede limpiar (aunque la finalidad de esto es evitar el ¨like fantasma¨)

## Lucien, [2020-11-26T09:39:02.000Z](https://fcuba.net/threads/3868-limpieza-correcta-bd-en-etecsa#post-34614)

> Ahora es totalmente seguro limpiar las conversaciones privadas que se encuentran alojadas en las siguientes tablas:
>
> *xf\_conversation\_master
> xf\_conversation\_message
> xf\_conversation\_recipient
> xf\_conversation\_user*
>
> hay que ejecutar estos comandos en el apartado SQL de nuevo en el orden siguiente:
>
> ```sql
> TRUNCATE xf_conversation_master
> ```
>
> ```sql
> TRUNCATE xf_conversation_message
> ```
>
> ```sql
> TRUNCATE xf_conversation_recipient
> ```
>
> ```sql
> TRUNCATE xf_conversation_user
> ```
>
> Una vez que todos corrieron satisfactoriamente todas las conversaciones privadas quedarán limpias
>
> Como nota añadir que el comando TRUNCATE limpia todo el contenido de la base de datos pero sin eliminarla, por eso es mejor que DROP que DEFINITIVAMENTE no se debe usar para estos casos

## Lucien, [2020-11-26T09:41:58.000Z](https://fcuba.net/threads/3868-limpieza-correcta-bd-en-etecsa#post-34615)

> Ahora es el turno de limpiar los perfiles, en este caso solo son dos tablas, las siguientes:
>
> ```sql
> TRUNCATE xf_profile_post 
> ```
>
> ```sql
> TRUNCATE  xf_profile_post_comment
> ```
>
> y listo, se borran los perfiles completamente :D

## Lucien, [2020-11-26T09:50:48.000Z](https://fcuba.net/threads/3868-limpieza-correcta-bd-en-etecsa#post-34616)

> podemos limpiar otras tablas con TRUNCATE como son:
>
> *xf\_news\_feed
> xf\_search\_index
> xf\_user\_alert **(PARA ELIMINAR LAS ALERTAS, OBLIGATORIO)**
> ** **xf\_moderator\_log **(elimina el log de moderación)**
>
>
> las dos primeras se volverán a reconstruir pero se llevarán un mega menos tal vez, o dos como mucho*
