Hay algunas etiquetas duplicadas debido a corrupción de la base de datos y no puedo fusionarlas

Como se puede ver en la imagen, en nuestros foros hay algunas etiquetas que son exactamente iguales.

Al crear un tema, verás un número diferente de temas en estas etiquetas:

Pero si seleccionas una, ambas se seleccionan. Sin embargo, al hacer clic en las etiquetas, ambas te llevan a la misma página con temas similares y el mismo número de temas. Por lo tanto, los administradores no pueden fusionarlas ni eliminar una de ellas.

este es un tema de ejemplo en nuestro foro con dos conjuntos de etiquetas duplicadas.

Tuve un problema similar debido a un índice corrupto.

No sé si esto ayudará: Can't restore due to corrupt indexes (with some clues on how to deal with corrupt indexes)

@neil ¿tienes alguna idea al respecto? ¿Es esto un efecto secundario de los sinónimos?

Poco probable, hemos visto que muchos índices corruptos y plugins de terceros defectuosos causan esto.

Suena igual que este tema:

Hay un índice único en la columna del nombre de la etiqueta, por lo que no debería ser posible tener etiquetas duplicadas. Supongo que si ejecutaras reindex table tags, fallaría.

El proceso de @pfaffman aquí es probablemente lo que necesitarás hacer para eliminar las etiquetas duplicadas y corregir los índices.

esta es la lista de plugins que tenemos; supongo que ninguno de ellos podría estar relacionado con las etiquetas:

¡Ya las eliminé manualmente! O mejor dicho, pude eliminar una de las duplicadas en cada par; pero entonces la página de la otra etiqueta del par se volvió inaccesible (incluso para los administradores). Al intentar acceder a la página, aparece el mensaje “esa página no existe o es privada”, aunque hay varios temas con esa etiqueta.

Un ejemplo sería la etiqueta یادگیری, que debería tener 488 temas, pero la página de la etiqueta no existe (enlace a la página de la etiqueta):

image

P.D.: perdón por que las páginas y las etiquetas no estén en inglés. Espero que esto ayude a identificar el problema.

Parece que lo hiciste desde la interfaz de usuario, pero no se puede hacer de esa manera. Como hizo Jay, necesitas actualizar todos los temas que usan una de las etiquetas para que usen la otra, como en su ejemplo:

TopicTag.where(tag_id: 717).update_all(tag_id: 611)

Gracias, ¿hay algún comando para encontrar las etiquetas corruptas (aquellas que ya he modificado desde la interfaz) y las etiquetas duplicadas? Si es así, ¿podrías guiarme?

Describo cómo lo hice (o algo similar) en Can't restore due to corrupt indexes (with some clues on how to deal with corrupt indexes) - #14 by pfaffman. No es exactamente una guía paso a paso, pero podría ayudarte. Tendrás que alternar entre la consola de Rails y psql, lo cual, si no estás familiarizado con ambas, podría resultar confuso o intimidante. Si no funciona y tienes presupuesto, yo lo hice recientemente. :wink:

No creo que la corrupción del índice sea causada por un plugin. He visto este tipo de corrupción de índices en PSQL cinco veces en los últimos meses y cuatro de ellas utilizaban configuraciones de idioma persa.

También creo que se trata de un Contribute > Bug, y lo peor es que ¡es algo continuo! Por más que haya eliminado duplicados anteriores, sigo obteniendo nuevos. Si ayuda, puedo desactivar los plugins no oficiales y comprobar si aparecen nuevos duplicados.

Si se debiera al idioma farsi, sugeriría que podría ser por el uso de alfabetos aparentemente similares pero básicamente distintos por parte de diferentes teclados. Por ejemplo, algunos dispositivos utilizan el alfabeto árabe y otros el persa. En estos teclados encontramos ي e ی, que al usarse dentro de una palabra resultan indistinguibles (aunque su codificación sea diferente).

Pero el caso de @Pfaffman era para índices en inglés, ¡no en persa!

Sí, ese es el único (y único) que conozco que no está en farsi.