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
- avec une extension : Brozzme DB Prefix ou WPS Bidouille
- manuellement avec phpMyadmin
- avec wp-cli
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;