web-dev-qa-db-fra.com

Exporter uniquement les pages et les publications avec mysql dump

Comment exporter uniquement les pages et posts en utilisant mysql d’une base de données à une autre ? Plus précisément:

  • quelles tables faut-il sélectionner pour le vidage (je suppose wp-posts et wp-post-meta)
  • est-il prudent d'exporter uniquement certaines des tables (celles qui contiennent des pages/publications) et non toutes

(Mon objectif est de synchroniser le développement avec le site de production, et parce que le site prod a de nombreuses fonctionnalités ajoutées. post festum mon choix est d'exporter uniquement les pages et les publications. rien d'utile.)

1
Miloshio

Ce n'est généralement pas une bonne idée. Voir ce schéma de base de données WordPress . Vous devez considérer:

  • les publications qui ont des catégories ou des balises (termes), leurs relations, leurs méta de termes et leurs taxonomies
  • messages qui ont des auteurs (utilisateurs)
  • messages qui ont des commentaires
  • ce qui est en fait des publications que vous ne réalisez peut-être pas sont des publications (par exemple, presque tout dans WordPress est une publication - de nombreux plugins stockent leurs données sous forme de publications, certains exemples sont les groupes de champs Formulaire de contact 7, Champs personnalisés avancés, et bien d'autres encore)
  • tout ce qui pourrait avoir été modifié dans votre installation de développement et qui n'est pas synchronisé avec le serveur réel (par exemple, êtes-vous sûr qu'aucun enregistrement n'a changé dans la table d'options?)

En général, vous devriez avoir une copie "en direct" de votre base de données et toutes les modifications que vous apportez à votre base de développement doivent être uniquement à des fins de test, avant de répéter ces modifications sur votre serveur live. Faire autre chose risque de vous faire perdre une partie de votre temps dans toutes vos données afin de garantir leur intégrité. La fusion de deux bases de données n'est jamais amusante.

Sans connaître tous les détails de votre situation, certaines de vos options potentielles pourraient être:

  • Import/export de WordPress (que vous avez dit avoir essayé, mais on ne sait pas pourquoi cela n'a pas fonctionné)
  • Réinsertion manuelle des publications dont vous avez besoin (ce qui peut être prohibitif en fonction du nombre de publications)
  • Ajouter les publications à une nouvelle table, puis écrire un script pour parcourir les enregistrements et exécuter wp_insert_post() sur chacun
  • Prenez un mysqldump de chaque base de données et faites un diff pour déterminer ce qui a vraiment changé dans le site actif, et décidez si vous pouvez simplement écraser la base de données et définir manuellement les options.

Il peut également y avoir d'autres solutions, et la meilleure dépendra des détails de votre situation. Avec les informations dont nous disposons jusqu'à présent, je serais probablement penché vers l'option de script ci-dessus.

EDIT: Depuis que cette réponse a été écrite à l'origine, Mergebot a été publié. Je ne l'ai pas utilisé, je ne peux donc pas en témoigner, mais cela semble prometteur et l'auteur a une expérience de la production de bons plugins.

0
Tim Malone

Le contenu inclut l'utilisateur auteur et les commentaires (et probablement plus). Dumping, une partie seulement de la base de données en tant que moyen d’exportation/importation ne semble pas être une idée très robuste.

Les bases de données sont relativement petites et il n'y a presque aucune raison de ne pas exporter/importer l'intégralité de la base de données au lieu d'essayer de pirater des éléments.

0
Mark Kaplun