Como corrigir Table doesn’t exist após migração
O que é o erro table doesnt exist no WordPress?
Table doesn’t exist é o erro que o MySQL retorna (código 1146) quando o WordPress consulta uma tabela que não existe com o nome esperado no banco. No WordPress, surge principalmente depois de migrar de servidor: o dump foi importado com um prefixo diferente do que está no wp-config.php, ou algumas tabelas ficaram de fora na exportação. O WordPress monta o nome da tabela juntando o prefixo definido em $table_prefix com o sufixo (posts, options, users), e se esse prefixo não casa com o do banco, ele procura uma tabela que de fato não existe.
Como identificar
- O log ou a tela mostra “Table ‘meubanco.wp_posts’ doesn’t exist” ou “Error 1146: Table … doesn’t exist”.
- O site quebrou logo após uma migração de host ou uma importação de banco via phpMyAdmin.
- O wp-admin não abre e o front mostra erro, mas a conexão com o banco está funcionando.
- No phpMyAdmin as tabelas existem, porém com um prefixo diferente do que está no wp-config.php.
Como prevenir
- Antes de migrar, anote o prefixo de tabelas do site de origem e replique-o no destino
- Use uma ferramenta de migração que exporta o banco completo em vez de dumps manuais parciais
- Após importar, confira a contagem de tabelas no destino contra a origem antes de apontar o domínio
Causa
- Prefixo em $table_prefix no wp-config.php diferente do prefixo real das tabelas importadas.
- Dump SQL exportado de forma incompleta, deixando uma ou mais tabelas de fora da importação.
- Importação interrompida no meio por timeout ou limite de pacote, criando só parte das tabelas.
- Renomeação manual do prefixo das tabelas no banco sem atualizar o wp-config.php e a wp_options.
- Importação para o banco errado, deixando o WordPress apontando para um schema sem as tabelas.
Como resolver
- Descubra o prefixo real no phpMyAdmin: abra o phpMyAdmin, selecione o banco do site e veja o início do nome das tabelas (por exemplo wp_ ou wpxy_). Esse é o prefixo verdadeiro que o wp-config.php precisa apontar.
- Alinhe o prefixo no wp-config.php: via FTP, edite o wp-config.php e ajuste a linha $table_prefix para o prefixo exato que você viu no banco, mantendo o sublinhado final. Salve e recarregue o site.
- Confirme se todas as tabelas foram importadas: compare a lista de tabelas do banco com a estrutura padrão do WordPress (posts, options, users, usermeta, postmeta, terms e outras). Se faltar alguma, a importação ficou incompleta.
- Reimporte o dump completo se faltarem tabelas: exporte de novo do site de origem garantindo todas as tabelas, apague o banco de destino e reimporte o dump inteiro. Importações cortadas por timeout deixam tabelas faltando.
- Confira que está no banco certo: verifique no wp-config.php se DB_NAME aponta para o banco que de fato contém as tabelas. Apontar para um schema vazio ou errado gera o mesmo erro de tabela inexistente.
-- Liste as tabelas para descobrir o prefixo real (rode no phpMyAdmin, aba SQL)
SHOW TABLES;
-- Confirme se a tabela esperada existe com o prefixo certo
SHOW TABLES LIKE 'wp_%';
-- Se o prefixo real for diferente (ex.: wpxy_), renomeie de volta para o do wp-config:
RENAME TABLE wpxy_posts TO wp_posts;
RENAME TABLE wpxy_options TO wp_options;
-- (repita para cada tabela; ou ajuste o $table_prefix no wp-config em vez de renomear)














