2012-04-10 153 views
1

以前的开发人员构建了一个网站,其中包含数千个新闻&事件项目。问题是他已经创建了数据库来处理他自己的CMS。我们现在使用Wordpress,因此想要将这些数据迁移到WP数据库中。将数据从一个数据库迁移到另一个数据库

问题是数据稍有不同,需要一些操作才能导入。有没有人有一个简单的方法来做到这一点的建议?

我需要原始数据库中的旧数据为新的Wordpress数据库的格式。请记住,有几百个条目,因此它不是复制和粘贴作业!

这使得一个事件在原来的定制CMS:

(当出口是所有的地方CSV)我导出的例子作为XML

<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> 

这是格式我需要的数据是在里面的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

看起来您将需要编写SQL查询。我知道工具可以映射列,但通常不会超过更多的表。您还需要一些缺少的列的缺省值。 – pritaeas 2012-04-10 13:13:35

+0

@pritaeas干杯。如果我一次只做一个,它可以吗?因此,将第一个自定义表映射到第一个WP表。然后做第二张桌子? – Rob 2012-04-10 13:31:29

+1

而不是直接进行数据库转储,您最好使用WordPress的XML导入功能或XMLRPC。 – 2012-04-10 13:52:08

回答

2

由于这是一个自制的CMS,你最有可能不会找到任何工具,所有的代码转化为WordPress的˚F ORMAT。

我会让你的脚本(PHP或其他),将转换这个巨大的转储。 我认为WordPress(或插件)可以读取XML,因此您只需修改结构和键。

相关问题