Sélectionner une page

Dans certaines situations, il peut être utile de modifier le préfixe des tables de base de données de WordPress.

  • plusieurs installation WordPress peuvent co-habiter sur la même base de données, il faut donc modifier (ou déjà vérifier) qu’il n’y aura pas de conflit entre les préfixes.
  • le préfixe par défaut wp_ est trop basique et vous désirez le personnaliser.

Il y a plusieurs manières de modifier le préfixe

Manuellement avec phpMyadmin

Cette technique n’est pas préférable, mais vous permet de déterminer ou de vérifier que le changement a bien été effectué, en cas de débogage.

Après avoir renommer les tables vous devrez aussi modifier le préfixe de la table dans le fichier wp-config.php.

Récupérer le préfixe actuel dans le fichier wp-config.php.
Connectez vous à phpMyadmin

RENAME table `wp_commentmeta` TO `refs_commentmeta`;
RENAME table `wp_comments` TO `refs_comments`;
RENAME table `wp_links` TO `refs_links`;
RENAME table `wp_options` TO `refs_options`;
RENAME table `wp_postmeta` TO `refs_postmeta`;
RENAME table `wp_posts` TO `refs_posts`;
RENAME table `wp_terms` TO `refs_terms`;
RENAME table `wp_term_relationships` TO `refs_term_relationships`;
RENAME table `wp_term_taxonomy` TO `refs_term_taxonomy`;
RENAME table `wp_usermeta` TO `refs_usermeta`;
RENAME table `wp_users` TO `refs_users`;

Une fois que vous avez renommé les tables.
Attention, vous devez vérifier que toutes les tables avec ce préfixe ont été renommées.
Retrouver le nom des options avec l’ancien préfixe, pour remplacer les options avec le bon préfixe

SELECT * FROM `refs_options` WHERE `option_name` LIKE '%wp_%'

Editer les résultats

On doit rechercher les informations utilisateurs.

SELECT * FROM `refs_usermeta` WHERE `meta_key` LIKE '%wp_%'

Editer les résultats

Modifiez le préfixe dans le fichier wp-config.php, vérifiez que tout fonctionne.

$table_prefix  = 'ilmwp_';

Pas très sexy et un peu long comme technique, mais au moins, on sait quels points doivent être vérifié en cas de problème sur des vieux sites.

WP-CLI

Vous devez installer le package iandunn/wp-cli-rename-db-prefix

# installation du package 
wp package install iandunn/wp-cli-rename-db-prefix
wp rename-db-prefix <new_prefix>
wp rename-db-prefix --dry-run <new_prefix>
wp rename-db-prefix --no-prompt <new_prefix>

Avant toute chose, faites, une sauvegarde du fichier wp-config.php et un export de la base de données.

$ scp wp-config.php wp-config-old-pfx.php

wp db export

On peut vérifier que les fichiers sont présents avec la commande ls -g

Attention : Si vous êtes passé de mysql 5.6 à mysql 5.7 et que vous obtenez cette erreur :

mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'gtid_mode'': Table 'performance_schema.session_variables' doesn't exist (1146)

Vous devez appliquer cette commande

$ /Applications/MAMP/Library/bin/mysql --host=localhost -uroot -ppassword
mysql > set @@global.show_compatibility_56=ON;