玄天黄地

学生時代、箸にも棒にも掛からなかったアホの子が、やっと普通のアホになれるか?

Nucleus をバージョンアップする

前置き的な話

 私は、私物のノートパソコンに Nucleus CMS を入れて、業務日誌を記録している。外部のブログを利用しないのは、本当に秘密の話をクラウドに書くリスクをとてもテイクできないと思っているからである。

 さて、現行のノート(Let's Note の5系)は購入してもう5年半になる。丁寧に使ってきたつもりなので、バッテリーは依然へたっておらず(フル充電で8時間くらいは保つ)、せいぜい Microsoft Office が当時でも古めのバージョンを入れていたために、外でプレゼンをする場合などで少しずつ不便を感じるようになってきた程度だったのだが、ネットに接続する時のために入れてあるウイルスチェッカがバージョンアップしたところで Apache と頻繁に衝突するようになり、ここ2ヶ月ほどは困っていた。
 そんな時、Let's Note の9系が 価格.com の最安値よりも2万円程度安い額で売られているのを見つけ、つい買ってしまった。数ヶ月前に MBA を買うかも、とか言っていた話は忘れたことにする。

 新しいマシンにも、NucleusQuantum GIS をすぐにインストールする予定であるのだが、Nucleus は5年半前の ver.3.30 から ver.3.64 に変わっている。古いCMSでデータをダンプして、それを新しいCMSに読みこめば終わりだと思っていたのだが、なんと、Table の構造が異なる。
 サポートサイトでではアップグレードパッケージが用意されており、version-up のための具体的な手順も示されているが、そのとおりにやってもダメだった(依然大量のエラーが出て、nucleus_item が生成されない)。まあその前に phpMySQL も全部バージョンが上がっている。

 そんなこんなで予想よりは時間を要したが、それでもなんとか移行に成功したので、備忘録的にエントリを起こしてみた。

手順

 古い方のダンプ(xxx.sql、ただし、アップグレードパッケージを施してある)を新しい方で読ませると、膨大なエラーメッセージが出る。しかも、nucleus_item が生成されない。そこで、新しい方のCMSでデータをダンプさせ、エディタで新旧のファイルを開いてみた。
 そもそも、SQL 文が全体的に違う。create table 文でフィールドの数が違うものがあるし、各フィールドの属性指定の方法(NOT NULL と DEFAULT '0' など)の記述順序も違う。また、全てのフィールドが back-quote(sjis 0x60)で囲われている。私は MySQL をあまりいじったことがないのだが(不勉強な奴っちゃ)、とりあえずこれらの相違を吸収すべく、完全に同じ書式になるように直してみた。

 nucleus_actionlog とか nucleus_ban とかは何も悩まないで済むが、現行のCMSでは2つのブログを併設していて(公務と私事に分けている)、nucleus_skin とか nucleus_template とかが悩ましい。ver.3.50 あたりからこの辺の仕様が変わったようなのだ。デフォルトのスキンを使っているのであれば何も悩まなくて良いのだが、私は vicuna をマルチタブで使用している(そのほかにも、はなまるゴスペルとか twotone とか、試験的にいれたものがいくつかある)。また、デフォルトのプラグイン(NC_SkinFiles)も、オプションの数が増えたようだ。従って、その後から入れたプラグインのオプションは、oid の値を自動的に増やさなければならないはずである。

 また、サポートフォーラムでモデレータクラスの方々が書いておられるように、古いバージョンの MySQL だと、文字コードの照合順序が latin1_swedish になってしまい、Nucleus ではちゃんと読めるものの、phpMyAdmin では読めなかったりする。これを修正するためなのかどうかは分からないが、各 CREATE TABLE 文では、フィールド指定の後に「ENGINE=MyISAM DEFAULT CHARSET=utf8」が追加指定になっている。

 私のダンプデータは、約2000のアイテムを含むので、修正はかなり大変なのではないかと事前に予想したが、エディタで機械検索&置換を掛けるとそれほど大変ではなかった。確認作業を入れながら3時間程度で約10万行のダンプファイルの修正が完了。ミスタイプが3カ所あっただけで、すんなりと Nucleus ver.3.64 はダンプファイルを読んでくれた。

スキン

 よろこんでサイトの確認をしてみたら、スキンがダメである。「CSS が全く効いていない」ように見える。
 スキンは、事前にスキンのあるフォルダを再現しデータベースを再読込してもダメ依然ダメ。skinbackup.xml を再度読みこんで復活。ただ、vicuna はマルチタブにしたり NP_MultipleCategories を入れたりしているため、いろいろチューニングしていて、それをもう一度やり直さなければならないようだ。以前のスキンファイルと、skinbackup.xml を読みこんだ直後とでは何処がどのように変わっているのか未だ追えていないが、それを追いかけるのと、新たな気持ちで設定し直すのとどちらが早いか現時点で考え中である。そもそも、5年前と異なり、vicuna もあの頃のサブスキン(たとえば style-ninja とか style-smartcampus とか)がもうリリースされていないようである。