Restablecer ID de publicaciones a menos de 64 bits enteros

8

He estado ejecutando Wordpress durante muchos años y tengo alrededor de 26000 publicaciones.

En algún momento, mis identificadores de publicación superaron un número entero de 32 bits y ahora estoy bloqueado para usar Wordpress en un sistema de 64 bits.

Estoy viendo publicaciones con ID como 4863166253.

Me gustaría cambiar mi alojamiento a un servidor de baja potencia como un raspberry pi de 32 bits.

¿Hay alguna manera de restablecer las ID de publicación para que todas estén por debajo de los 2 mil millones?

Puedes leer mi informe de errores de Wordpress aquí

Gracias.

Mark Waters
fuente
Este es uno de sus complementos que lo lleva allí, supongo que post_2_post, pero eso es solo una suposición. En realidad, debe comprender por qué tiene un número tan alto (ninguna cantidad real de revisiones lo llevará allí, a menos que sea un complemento que las cree) y solo entonces puede comenzar a planificar cómo solucionarlo.
Mark Kaplun

Respuestas:

5

Esta respuesta es la forma en que tomaría para resolver el problema si tuviera que enfrentarlo, significa que no es la respuesta sino una de las posibilidades.

Todas las operaciones que sugeriré deben ejecutarse en un servidor de desarrollo / local en una copia de seguridad de la base de datos y no en la producción ni en la base de datos original.

Si tiene 26,000 publicaciones pero la identificación de la publicación es como 4,863,166,253, hay millones de identificadores que no se usan.

Para resolver este problema necesita:

Paso 1

  • eliminar los identificadores de publicación no utilizados. (publicaciones basura, revisiones)
  • huérfanos eliminados publicar meta entradas
  • eliminar entradas de relación de taxonomía de huérfanos

Hay complementos para el alcance, pero se puede hacer mediante consultas SQL sin formato simples.

Paso 2

Restablezca los identificadores de publicación cambiándolos para que comiencen desde 1. Esto se puede hacer usando una combinación de PHP + MySQL: si recupera la columna de identificación de publicación como una matriz (por ejemplo, vía $wpdb->get_col()), las claves de matriz (incrementadas en 1) serían nuevas identificaciones de publicaciones para publicaciones cuya identificación actual está en valores de matriz.

Tenga en cuenta que los ID de las publicaciones deben cambiarse en:

  • mesa de correos
  • tabla de relaciones de taxonomía
  • tabla meta posterior

Le sugiero que ejecute esa rutina en subconjuntos de publicaciones utilizando resultados paginados y no en miles de filas en su conjunto.

Paso 3

Establezca el AUTO_INCREMENTíndice en la tabla de publicaciones para contar + 1.

Hecho

Al final de este proceso, su ID de publicación más alta debería estar fácilmente dentro del límite de 32 bits.

Prevenir el límite posterior se alcanza nuevamente

  • Deshabilite las revisiones de publicaciones o limítelas en número (consulte el Codex ).

  • Mueva las publicaciones antiguas (¿2 años? ¿5?) A un blog separado en un entorno multisitio, por ejemplo, site1-archive.example.compara publicaciones en site1.example.com.

    Esto se puede hacer usando el exportador de WordPress con la opción de rango de fechas.

    Si planea hacer esto, es mucho mejor si se hace antes de restablecer los identificadores de publicación (paso # 2 anterior), de esta manera ambos 2 blogs pueden tener una identificación de publicación más baja.

    Por supuesto, después de eso, también debe establecer una forma de redirigir las URL de publicaciones archivadas a nuevas URL.

gmazzap
fuente