NucleusからJoomla!にブログを移行した
今まで、ブログには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!でのロジックになってるらしく、これも諦めた機能である。
もちろんバックアップはちゃんととって。
やるときは個人の責任で。