2012-04-10 6 views
1

Un développeur précédent avait construit un site Web qui comprenait littéralement des milliers d'articles d'événements &. Le problème est qu'il avait créé la base de données pour travailler avec son propre CMS. Nous utilisons maintenant Wordpress, donc nous voulons migrer ces données dans la base de données WP. Le problème est que les données sont légèrement différentes et nécessiteront quelques manipulations avant de pouvoir être importées. Quelqu'un at-il des suggestions d'un moyen facile de le faire?Migration de données d'une base de données vers une autre

J'ai besoin que les anciennes données de la base de données d'origine soient au format de la nouvelle base de données Wordpress. S'il vous plaît gardez à l'esprit qu'il existe littéralement des centaines d'entrées, ce n'est donc pas un travail de copier-coller!

J'ai exporté les exemples en XML (CSV lors de l'exportation était dans tous les sens):

Cela représente un événement dans la mesure CMS d'origine:

<database name="medicom_medi"> 
    <!-- Table myevents --> 
    <table name="myevents"> 
     <column name="id">13</column> 
     <column name="title">This is the title</column> 
     <column name="description">This is the content</column> 
     <column name="mediwales_event">0</column> 
    </table> 
    </database> 
    <database name="medicom_medi"> 
    <!-- Table myevents_dates --> 
    <table name="myevents_dates"> 
     <column name="id">22</column> 
     <column name="eventid">13</column> 
     <column name="datefrom">2011-01-31 00:00:00</column> 
     <column name="dateto">0000-00-00 00:00:00</column> 
     <column name="venue">PA Consulting Group</column> 
     <column name="address">123 Buckingham Palace Rd, London SW1W 9SR</column> 
    </table> 
    </database> 

Ce format J'ai besoin des données à l'intérieur de Wordpress:

<database name="medicom_v3"> 
    <!-- Table wp_posts --> 
    <table name="wp_posts"> 
     <column name="ID">3871</column> 
     <column name="post_author">1</column> 
     <column name="post_date">2012-04-10 10:00:34</column> 
     <column name="post_date_gmt">2012-04-10 10:00:34</column> 
     <column name="post_content">Testing</column> 
     <column name="post_title">Test event 2</column> 
     <column name="post_excerpt"></column> 
     <column name="post_status">publish</column> 
     <column name="comment_status">closed</column> 
     <column name="ping_status">closed</column> 
     <column name="post_password"></column> 
     <column name="post_name">test-event-2</column> 
     <column name="to_ping"></column> 
     <column name="pinged"></column> 
     <column name="post_modified">2012-04-10 10:00:34</column> 
     <column name="post_modified_gmt">2012-04-10 10:00:34</column> 
     <column name="post_content_filtered"></column> 
     <column name="post_parent">0</column> 
     <column name="guid">http://www.mediwales.com/v3/?post_type=tribe_events&amp;#038;p=3871</column> 
     <column name="menu_order">0</column> 
     <column name="post_type">tribe_events</column> 
     <column name="post_mime_type"></column> 
     <column name="comment_count">0</column> 
    </table> 
</database> 
<database name="medicom_v3"> 
    <!-- Table wp_postmeta --> 
    <table name="wp_postmeta"> 
     <column name="meta_id">14580</column> 
     <column name="post_id">3871</column> 
     <column name="meta_key">_EventShowMapLink</column> 
     <column name="meta_value">false</column> 
    </table> 
    <table name="wp_postmeta"> 
     <column name="meta_id">14581</column> 
     <column name="post_id">3871</column> 
     <column name="meta_key">_EventShowMap</column> 
     <column name="meta_value">false</column> 
    </table> 
    <table name="wp_postmeta"> 
     <column name="meta_id">14582</column> 
     <column name="post_id">3871</column> 
     <column name="meta_key">_EventAllDay</column> 
     <column name="meta_value">yes</column> 
    </table> 
    <table name="wp_postmeta"> 
     <column name="meta_id">14583</column> 
     <column name="post_id">3871</column> 
     <column name="meta_key">_EventStartDate</column> 
     <column name="meta_value">2012-04-17 00:00:00</column> 
    </table> 
    <table name="wp_postmeta"> 
     <column name="meta_id">14584</column> 
     <column name="post_id">3871</column> 
     <column name="meta_key">_EventEndDate</column> 
     <column name="meta_value">2012-04-17 23:59:59</column> 
    </table> 
    <table name="wp_postmeta"> 
     <column name="meta_id">14585</column> 
     <column name="post_id">3871</column> 
     <column name="meta_key">_EventVenueID</column> 
     <column name="meta_value">0</column> 
    </table> 
    <table name="wp_postmeta"> 
     <column name="meta_id">14586</column> 
     <column name="post_id">3871</column> 
     <column name="meta_key">_EventCost</column> 
     <column name="meta_value"></column> 
    </table> 
    <table name="wp_postmeta"> 
     <column name="meta_id">14587</column> 
     <column name="post_id">3871</column> 
     <column name="meta_key">_EventOrganizerID</column> 
     <column name="meta_value">0</column> 
    </table> 
</database> 
+0

On dirait que vous allez avoir besoin d'écrire des requêtes SQL. Je sais que les outils peuvent mapper des colonnes, mais généralement pas plus de tables. Vous aurez également besoin de valeurs par défaut pour les colonnes manquantes. – pritaeas

+0

@pritaeas À la vôtre. Est-ce faisable si je fais un à la fois? Donc mappez la première table personnalisée à la première table WP. Ensuite, faites les secondes tables? – Rob

+1

Plutôt que de faire un vidage de base de données direct, vous feriez probablement mieux d'utiliser la fonction d'importation XML de WordPress ou XMLRPC. –

Répondre

2

comme il était un CMS fait maison, vous avez très probablement ne trouverez aucun outil pour traduire tout ce code dans WordPress f oumat.

Je voudrais faire de votre script (php ou autre) qui va convertir cet énorme vidage. Je pense que WordPress (ou plugins) peut lire du XML, il suffit donc d'adapter la structure et les clés.

Questions connexes