Je suis assez nouveau dans Wordpress et je suis un peu confus sur la façon de prendre la base de données de mon serveur local et de la remplacer par celle du serveur sur un multisite Wordpress.
J'ai déjà remplacé la base de données de local à serveur, mais c'était un site multisite.
La démarche que je fais habituellement est:
Lorsque j'essaie cela, la table sur le serveur est très différente de celle de mon local.
Ma structure de base de données locale ressemble à ceci:
Habituellement, la base de données du serveur est la même, mais pas dans ce cas.
Structure de la base de données du serveur:
Donc, je suis un peu confus sur la façon de résoudre ce problème. Puis-je continuer à faire ce que je fais habituellement ou dois-je suivre d'autres étapes?
Merci d'avance.
Edit: Pensez que j'ai un peu trop compliqué cela, je pourrais simplement créer une nouvelle base de données sur le serveur et pointer le fichier wp_config.php sur celui-ci à la place et tout devrait bien se passer
Edit 2: Nope ne fonctionne pas comme je le pensais. continue à avoir une erreur de boucle de redirection
Edit 3: J'ai enfin tout migré correctement grâce à @ Michael Ecklund ! Depuis que je mettais à jour la base de données de la page primaire, je n'avais pas besoin de créer un nouveau site, mais je suivais tout de même le reste de la instruction qu'il écrivait et tout se passait assez bien. Un peu de confusion au début, mais c'était mon propre manque de connaissances.
Éditer 4: Juste un FYI, si après la migration de la base de données et que vous avez perdu l'accès au tableau de bord. Allez dans votre base de données principale et dans la table * _options (dans mon cas, tenp_options) et cherchez un wp_user_roles
dans la colonne option_name et remplacez le nom de cette colonne par le préfixe de votre site (qui dans mon cas est tenp_
). Vous devriez maintenant pouvoir pour accéder à nouveau à votre tableau de bord.
Avant de commencer:
Recherchez sur votre serveur Web le répertoire dans lequel la copie autonome de WordPress est installée et le répertoire sur votre serveur Web dans lequel la copie multisite de WordPress est installée, puis ouvrez le fichier wp-config.php
des deux installations. Localisez la constante PHP constante DB_NAME
. Il contient le nom de la base de données utilisée par l’installation particulière de WordPress.
Par défaut, le préfixe de la table de la base de données est wp_
.
Si vous ne pouvez pas identifier le préfixe de la table de base de données en examinant simplement la base de données. Vous pouvez regarder dans le répertoire de base de votre installation WordPress et ouvrir le fichier wp-config.php
du site en question et chercher une ligne comme $table_prefix = 'wp_';
.
Dans votre cas, cela ressemble à:
wp_
.tenp_
.Sur un serveur de base de données local, créez une base de données temporaire pour chacune de ces bases de données. Peut-être pour garder les choses simples, nommez une base de données "standalone
", et la seconde "multisite
".
standalone
" (que vous venez de créer) sur votre serveur de base de données local.multisite
" (que vous venez de créer) sur votre serveur de base de données local.C’est à cette étape que vous devrez probablement remplacer les modifications d’URL nécessaires. (http à https), (non-www à www), (ajouter ou supprimer des répertoires de l'URL), etc.
Effectuez cette tâche sur la base de données "standalone
" que vous avez créée sur votre serveur de base de données local.
N'oubliez pas de changer les choses comme vous le souhaitez dans l'installation multisite (le résultat final).
Pour cette procédure, vous aurez besoin d'un outil de base de données:
Etape 4.2 - Utilisateurs et post-auteurs
Vous voudrez probablement créer une note sur tous les utilisateurs de votre installation autonome et mapper l'ancien ID utilisateur sur le nouvel ID utilisateur (à partir de l'installation Multisite).
Vous pouvez simplement créer un fichier texte temporaire et faire quelque chose comme ceci:
1 => 4
8 => 23
15 => 9
Les numéros à gauche sont les identifiants de l'installation autonome et les numéros à droite sont les identifiants de l'installation multisite.
Vous voudrez ensuite mettre à jour la colonne post_author
de la table wp_posts
pour mettre à jour tous les anciens ID utilisateur avec les nouveaux ID utilisateur. Sinon, lorsque vous visualisez votre site migré de autonome à multisite, vous êtes un chaton confus. Cela va dire que des éléments de votre site ont été publiés par des personnes aléatoires et probablement même des personnes de différents sites de votre réseau. Cela peut être catastrophique s'il est négligé.
Pour chacun des mappages d'ID utilisateur dans votre fichier texte, vous devrez émettre une commande similaire à celle-ci dans MySQL:
UPDATE wp_posts
SET post_author = '4'
WHERE post_author = '1'
SET post_author = '4'
est le nouvel ID utilisateur (l'ID utilisateur de l'installation multisite)WHERE post_author = '1'
est l'ancien ID utilisateur (l'ID utilisateur de l'installation autonome).Je n'ai pas encore trouvé de bonne solution pour cette étape. En général, je ne fais que recréer les utilisateurs manuellement dans l'installation multisite.
En d'autres termes, je laisse généralement juste tomber deux tables wp_users
et wp_usermeta
.
Si quelqu'un souhaite améliorer cette étape, n'hésitez pas à éditer et ajouter des conseils ici.
Cette étape ressemble beaucoup à l'étape 4.
Vous voudrez mapper les anciens noms de table sur les nouveaux noms de table dans la base de données "standalone
" sur votre serveur de base de données local.
C’est à cette étape que vous devez connaître le numéro d’identification du site à partir de votre installation multisite.
Par exemple:Si l'ID de votre site est 15
et que le préfixe de votre table de base de données utilisé sur votre installation multisite est tenp_
, la table de la base de données wp_posts
deviendrait alors tenp_15_posts
.
Voici la commande MySQL que vous pouvez utiliser pour mettre à jour vos noms de table de base de données:
RENAME TABLE `wp_posts`
TO `tenp_15_posts`;
Alternativement, si votre base de données est suffisamment petite. Vous pouvez simplement exporter la base de données entière et l'ouvrir dans un éditeur de texte. Puis trouvez tout et remplacez. Enregistrez-le lorsque vous avez terminé.
Une fois que toutes les modifications ci-dessus ont été apportées, exportez la base de données "standalone
" à partir de votre serveur de base de données local.
.sql
exporté dans la base de données "multisite
" de votre serveur de base de données local.multisite
" à partir de votre serveur de base de données local..sql
de votre base de données "multisite
" que vous avez exportée à partir de votre serveur de base de données local et importez-le dans votre base de données utilisée par votre installation Multisite existante (celle à partir de laquelle vous avez simplement supprimé toutes les tables). Il s'agit essentiellement de remplacer la base de données de l'installation multisite actuelle par la base de données modifiée contenant le site autonome nouvellement migré.Moving Télécharge des fichiers de ./wp-content/
.
Standalone et Multisite stockent les fichiers téléchargés différemment. Le multisite les stocke dans ./wp-content/sites/{$site_id}/
. Assurez-vous de déplacer correctement vos fichiers téléchargés.
Modification du site principal:
Recherchez la table de base de données wp_site
dans votre base de données multisite. Editez les colonnes id
et domain
de manière appropriée.
Vous devrez peut-être également modifier la colonne site_id
dans la table wp_blogs
.
Recherchez également ces lignes dans wp-config.php
et réglez-les à nouveau en conséquence.
define( 'DOMAIN_CURRENT_SITE', 'www.your-domain.com' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
Liens utiles:
End.
Si quelque chose est déroutant, commentez s'il vous plaît et je vais essayer de le clarifier.
La base de données est en effet configurée différemment pour un multiwp, ces tenp_12 sont des préfixes pour chaque site du multisite. Il semble que le site que vous exécutez localement n’est pas un site multisite. Si vous essayez d’ajouter un autre site (qui n’est pas le site principal), je vous suggère tout d’abord de l’ajouter à partir du tableau de bord multisite, puis d’y déposer des tables (par exemple, tenp_x où x ressemble à votre identifiant de site) et d’importer dans ces tables. Cela vous obligerait à préamplifier renommer le nom de la table ainsi que des colonnes, après quoi vous pourrez configurer la valeur pour siteurl et home vers l'URL du site que vous décrivez au point 6.