NucleusからJoomla!にブログを移行した

カテゴリ: Nucleus / 公開日: 2013年3月06日(水曜)16:09 / 投稿者: Tom Goodsun

今まで、ブログにはNucleusを使っていたが、ふとしたことからJoomla!に移行をしたので、その手順を公開する。

まず、Joomla!上にブログを設定しなくてはならない。
基本的には「ブログ」カテゴリを作成して、そのサブカテゴリに元々のブログで設定しているカテゴリをちまちま作っていく。
さほど多くなくてよかった。

最終的には、記事データの移行はSQLで一発でした。
システムの都合でいろんな機能なものを妥協した。

コメント機能やタグ機能は、移行しきれなかったので放置。
コメント機能もいいプラグインがないか現在調査中。できればCAPTCHAが使えるやつでフリーで使えるやつがいい。

で、実際に移行に使ったSQL。
基本的には、テストで作った記事データを元にSQLを作った。
移行先と移行元のカテゴリをCASE文で作った。

INSERT INTO `jos_content` (
    `title`,
    `alias`,
    `introtext`,
    `fulltext`,
    `state`,
    `catid`,
    `created`,
    `created_by`,
    `created_by_alias`,
    `modified`,
    `modified_by`,
    `checked_out`,
    `checked_out_time`,
    `publish_up`,
    `publish_down`,
    `images`,
    `urls`,
    `attribs`,
    `version`,
    `ordering`,
    `metakey`,
    `metadesc`,
    `access`,
    `hits`,
    `metadata`,
    `featured`,
    `language`,
    `xreference`
) SELECT
    ititle,
    '',
    REPLACE(ibody, '/blog/media/', '/images/'),
    REPLACE(imore, '/blog/media/', '/images/'),
    1,
    CASE icat
        WHEN  1 THEN 24
        WHEN  2 THEN 28
        WHEN  3 THEN 34
        WHEN  4 THEN 33
        WHEN  5 THEN 31
        WHEN  6 THEN 30
        WHEN  7 THEN 29
        WHEN 25 THEN 25
        WHEN 28 THEN 26
        WHEN 29 THEN 32
        WHEN 30 THEN 27
    END AS catid,
    itime,
    42,
    '',
    itime,
    42,
    0,
    '0000-00-00 00:00:00',
    itime,
    '0000-00-00 00:00:00',
    '',
    '',
    '{"show_title":"","link_titles":"","show_intro":"","info_block_position":"0","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_vote":"","show_hits":"","show_noauth":"","urls_position":"","alternative_readmore":"","article_layout":"","show_publishing_options":"","show_article_options":"","show_urls_images_backend":"","show_urls_images_frontend":""}',
    3,
    0,
    '',
    '',
    1,
    8,
    '{"robots":"","author":"","rights":"","xreference":""}',
    0,
    '*',
    ''
FROM
    nucleus_item;

ちなみにJoomla!のSEF機能にはURLに記事のタイトルが使用出来る「UTF-8エイリアス」という機能があるが、DB上は暗号化しており、その方法はJoomla!でのロジックになってるらしく、これも諦めた機能である。

もちろんバックアップはちゃんととって。
やるときは個人の責任で。