Redefine IDs de Post para um número inteiro menor que 64 bits

8

Estou executando o Wordpress há muitos anos e tenho cerca de 26.000 postagens.

Em algum momento, meus IDs de post excedeu um inteiro de 32 bits e agora estou bloqueado para usar o Wordpress em um sistema de 64 bits.

Estou vendo postagens com IDs como 4863166253.

Eu gostaria de mudar minha hospedagem para um servidor de baixa potência como um pi de framboesa que é de 32 bits.

Existe alguma maneira de redefinir os IDs de postagem para que eles fiquem abaixo de 2 bilhões?

Você pode ler o meu relatório de bug do Wordpress aqui

Obrigado.

    
por Mark Waters 06.12.2014 / 11:05

1 resposta

5

Esta resposta é a maneira que eu tomaria para resolver o problema se eu tivesse que enfrentá-lo, isso significa não é a resposta, mas uma das possibilidades.

Todas as operações que sugiro devem ser executadas em um servidor local / de desenvolvimento em um backup do banco de dados e não na produção nem no banco de dados original.

Se você tem 26.000 postagens, mas o id do post como 4.863.166.253, há zilhões de ids que não são usados.

Para resolver este problema, você precisa:

Etapa 1

  • remover IDs de post não utilizados. (postagens descartadas, revisões)
  • removido órfão postar entradas meta
  • remova as entradas da relação de taxonomia órfãos

Existem plugins para o escopo, mas isso pode ser feito usando simples consultas SQL brutas.

Etapa 2

Redefina IDs post alterando-os para iniciar de volta 1. Isso pode ser feito usando uma combinação de PHP + MySQL: se você recuperar coluna post id como uma matriz (por exemplo, via $wpdb->get_col() ), chaves de matriz (incrementadas em 1) seriam novos IDs de postagens para postagens cujo ID atual esteja em valores de matriz.

Note que os códigos das postagens precisam ser alterados em:

  • publicar tabela
  • tabela de relações de taxonomia
  • pós meta-tabela

Sugiro que você execute essa rotina em subconjuntos de postagens usando resultados paginados e não em milhares de linhas em um todo.

Etapa 3

Defina o AUTO_INCREMENT index na tabela de postagens para postar contar + 1.

Concluído

No final deste processo, você deve identificar o ID de postagem com mais facilidade dentro do limite de 32 bits inteiro.

Impedir que o limite de postagem seja atingido novamente

  • Desative revisões posteriores ou limite-as em número (consulte Codex ).

  • Mover postagens mais antigas (2 anos de idade? 5?) para um blog separado em um ambiente multisite, por exemplo site1-archive.example.com para postagens em site1.example.com .

    Isso pode ser feito usando o exportador do WordPress com a opção de período.

    Se você planeja fazer isso, é muito melhor se for feito antes redefinir os IDs dos postes (passo 2 acima), desta forma ambos os 2 blogs podem ter um ID menor.

    É claro que depois disso você também deve colocar em prática uma maneira de redirecionar arquivados URLs de postagem para novos URLs.

por gmazzap 06.12.2014 / 14:45