日別アーカイブ: 2007年8月15日

Nucleus blog サーバー移行メモ (2)

サーバー移行時のメモ、前日のエントリの続きです。
blog サーバー移行メモ
チャンネル北国tv から Nucleus へ blog データの変換を行いました。
同じシステムを使っている他の地域系blogでも、おそらく変換可能だと
思います。

先日の NP_ImpExp の改造で、データ自体は問題なくインポート
できるようになりました。

●参照リンクの解決

次に少々気になるのは、自分自身の blog へのリンク、つまり過去記事を
参照している部分です。当然ですが、そのままだと移転前のページに
飛んでしまいます。

元の blog では、記事固有ページの URL は特に法則性のない名前に
なっていました。たぶん記事の管理番号か何かがそのままページ名に
なっているのだと思われます。
なので、export された MT形式のデータだけみてもどの URL がどの
データに対応していたのかわかりません。

問題はもう1つあります。Nucleus は個別の記事を itemid で区別して
おり、記事固有ページもこの item 番号が割り振られます。ところが
どの番号が割り振られるのかは、実際にデータをインポートしてみるまで
わかりません。
実験で何度も削除やインポートを繰り返しましたが、itemid は
インポートするたびに別に値になってしまいます。

問題点まとめ
・MT形式のデータでは、自分自身への参照リンクがわからない。
 参照している元の URL と、記事の対応付けが必要。

・Nucleus で個別記事を識別する番号は Import してみるまでわから
 ない。事前のツールで対応付けを静的に解決するのは難しい。
 (読み込んだ後の plug-in ならできる?)

そこで、記事個別に対する参照リンクをあきらめて、日付ごとの
アーカイブへのリンクに置き換えることにしました。
もともと1日に1記事程度のペースだったし、これなら事前に URL
も求まるし、何度も Import/Export を繰り返しても大丈夫です。

Nucleus の場合、日付によるアーカイブの URL は

http://wlog.flatlib.jp/archive/1/2007-8-12

こんな感じになります。

最初はリンク先の置き換えを手で修正してみましたが・・8月分だけで
断念。そこで、

 1. 自分の blog への参照リンク URL 抽出
 2. その URL へアクセスしてページデータダウンロード
 3. ページデータ内から日付情報の切り出し
 4. 切り出した日付から、新 blog 用のアーカイブページの URL を求めて置換

こんなスクリプトを書いて一気に置換してみました。

●画像リンクの置換

参照リンクと同じように、埋め込まれている画像の参照も変換する必要が
あります。これは参照リンクに比べたら非常に簡単なので、スクリプトで
単純にパスを置き換えました。

注意点はサーバー側で自動生成されたサムネイルを見ている可能性がある
ことです。変換時に再び生成しなおすか、または移転元から引っ張ってくる
方法もあるかと思います。

この blog ではもともと画像は少ないし容量も小さいので、今回はないも
せずに縮小前の画像へのリンクに置き換えてしまいました。

●チャンネル北国tv から Nucleus への移行手順のまとめ

・MT形式で Export
・自分への参照リンク URL の置換
・画像参照パスの置換

・Nucleus を設置して設定
・Import 前に先に NP_TrackBack Plug-in を入れておく必要あり
修正版のプラグイン NP_ImpExp を install
・NP_ImpExp で読み込み

・移行する画像データは別手段で用意しておき media/1 にアップロード

つい、いつものくせで投稿前にタイトルの文字数を数えてしまいました。
チャンネル北国tv のシステムでは、タイトル文字数が unicode 換算で
32文字までと制限があったからです。

もし逆に Nucleus から チャンネル北国tv 変換する場合は、この
タイトル文字数の対策が必要になるでしょう。