Tutorial como mudar o prefixo das tabelas do wordpress
Objetivo
Alterar o prefixo das tabelas do wordpress em um banco de dados já existente.
Requisitos
Ter um banco de dados funcional do wordpress onde deseja alterar o prefixo das tabelas no banco de dados.
Resumo
Os passos para alterar o prefixo de um banco de dados do wordpress já existente são:
- Atualizar o arquivo wp-config.php e alterar a linha com o novo prefixo desejado: $table_prefix = ‘wp_‘;
- Caso tenha o phpmyadmin instalado, selecione as tabelas e clique na opção: “Replace table prefix” ou “Substituir o prefixo de tabelas“.
- Agora é necessário atualizar as referências cruzadas das tabelas do banco, alterar o prefixo anterior (wp_) para o novo (wpNOVO_). Execute as query SQL (podem ser feitas dentro do phpmyadmin também):
- update wpNOVO_usermeta set meta_key = ‘wpNOVO_capabilities’ where meta_key = ‘wp_capabilities’;
- update wpNOVO_usermeta set meta_key = ‘wpNOVO_user_level’ where meta_key = ‘wp_user_level’;
- update wpNOVO_usermeta set meta_key = ‘wpNOVO_autosave_draft_ids’ where meta_key = ‘wp_autosave_draft_ids’;
- update wpNOVO_options set option_name = ‘wpNOVO_user_roles’ where option_name = ‘wp_user_roles’;
Abaixo teremos um passo a passo descritivo de cada etapa.
Passo a passo de como alterar o prefixo do banco de dados do WordPress
Passo 1 – Inserir o novo prefixo no arquivo wp-config.php
Caso esteja no windows, basta abrir o arquivo wp-config.php no bloco de notas e alterar a linha:
$table_prefix = 'wp_';
Caso esteja realizando a atualização em linha de comando no linux ou mac os, caminhe até o diretório raiz da sua instalação do wordpress e edite o arquivo wp-config.php:
nano wp-config.php
Agora com o editor nano aberto, ande até encontrar a linha:
$table_prefix = 'wp_';
Esta linha indica que todas as tabelas do wordpress começam com o prefixo wp_.
Caso queira um prefixo novo chamado wpNOVO_, basta alterar essa linha para:
$table_prefix = 'wpNOVO_';
Passo 2 – Alterar o prefixo existente no banco de dados
O próximo passo é alterar manualmente o prefixo existente nas tabelas do banco de dados.
Opção 1: Alterar prefixos utilizando phpmyadmin
Caso tenha o phpmyadmin instalado, basta clicar no banco de dados para que as tabelas apareçam ao lado direito.
Agora clique em:
Marcar todos
Ao lado de Marcar todos, clique em:
Com marcados:
E finalmente selecione:
Substituir o prefixo de tabelas
Um modal irá abrir para você selecionar o prefixo antigo atual e o novo prefixo que deseja alterar. Do nosso exemplo o prefixo atual é o original:
wp_
O novo prefixo desejado vai ser:
wpNOVO_
Agora basta clicar em:
Continuar
Opção 2 – Alterar prefixos utilizando query SQL
Caso não tenha o phpmyadmin instalado, basta executar uma query SQL do tipo ALTER TABLE para cada tabela do banco de dados no wordpress. É muito comum que plugins criem tabelas adicionais no banco de dados do wordpress, mas para referência, as tabelas padrão de uma instalação do wordpress e suas respectivas alterações necessárias são:
ALTER TABLE `wp_commentmeta` RENAME `wpNOVO_commentmeta`; ALTER TABLE `wp_comments` RENAME `wpNOVO_comments`; ALTER TABLE `wp_links` RENAME `wpNOVO_links`; ALTER TABLE `wp_options` RENAME `wpNOVO_options`; ALTER TABLE `wp_postmeta` RENAME `wpNOVO_postmeta`; ALTER TABLE `wp_posts` RENAME `wpNOVO_posts`; ALTER TABLE `wp_termmeta` RENAME `wpNOVO_termmeta`; ALTER TABLE `wp_terms` RENAME `wpNOVO_terms`; ALTER TABLE `wp_term_relationships` RENAME `wpNOVO_term_relationships`; ALTER TABLE `wp_term_taxonomy` RENAME `wpNOVO_term_taxonomy`; ALTER TABLE `wp_usermeta` RENAME `wpNOVO_usermeta`; ALTER TABLE `wp_users` RENAME `wpNOVO_users`;
A figura acima ilustra uma query SQL executada que tem o mesmo resultado do Passo 2 e Opcão 1 apresentado. Ela pode ser realizada também pelo console do mysql.
Passo 3 – Alterar referências entre tabelas existentes
Por fim, existem também referências entre as tabelas que precisam ser atualizadas. Geralmente apenas as tabelas user_meta e options possuem estas referências. Caso utilize plugins específicos com tais referências ou alguma versão mais nova do wordpress é bom ficar atento.
Caso utilize o phpmyadmin, e caso tenha clicado no banco de dados no menu da esquerda, as seguintes opções irão aparecer no menu superior:
Estrutura | SQL | Procurar | Consulta | Exportar | Importar | Operações | Rotinas | Eventos | Acionadores | Designer
Clique na opção do menu superior chamada:
SQL
Agora insira o seguinte código dentro do campo:
update wpNOVO_usermeta set meta_key = 'wpNOVO_capabilities' where meta_key = 'wp_capabilities'; update wpNOVO_usermeta set meta_key = 'wpNOVO_user_level' where meta_key = 'wp_user_level'; update wpNOVO_usermeta set meta_key = 'wpNOVO_autosave_draft_ids' where meta_key = 'wp_autosave_draft_ids'; update wpNOVO_options set option_name = 'wpNOVO_user_roles' where option_name = 'wp_user_roles';
Agora clique em:
Executar
A query SQL que inseriu irá ser executada e irá buscar as referências do prefixo antigo nas tabelas e realizar a atualização.
Caso não tenha o phpmyadmin, basta executar a query acima no console do mysql que terá o mesmo resultado.
Conclusão
A mudança do prefixo, das tabelas do wordpress, pode ser necessária em diversas ocasiões: aumentar segurança da instalação, ter várias instâncias do wordpress no mesmo banco, adequar a uma necessidade da organização, etc. O processo é simples e realizado em 3 etapas: atualizar o novo prefixo no wp-config.php, mudar o prefixo no banco e atualizar as referências entre tabelas.