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