2009年7月1日付けで6.12から6.13へのアップデートが公式からリリースされた。
本サイトでもアップデートをおこなうので、その手順を記しておきたいと思う。
ただし、あくまでも独自のやり方を貫くので、本サイトのやり方で正しくアップデートできるかどうかは保証できない。不安が残る方、企業の下請けや管理者の方で適当なのはまずいという方は公式サイトのアップデートガイドを参照して手順にしたがっていただきたい。
まず、下準備としてデータのバックアップをおこなう。データーベースのバックアップや、アップロードしてあるファイル、その他現在正常に稼動しているサーバー上のファイルをそっくりそのまま保存しておこう。いうまでもなくアップデートによる運営の中断や、データの損失が起きた場合に迅速にアップデート以前の状態に復帰させるための安全対策だ。
つぎにサイトをオフライン状態にする。これは別にやらなくてもかまいはしないが、どのタイミングで誰がアクセスして、どんなトラフィックが起きるかもわからない。それによってデーターベースに齟齬が生じる可能性もあるので安全策その2といったところだ。サイトをオフライン状態(メンテナンス状態)にするには、管理セクション>サイトの環境設定>サイトメンテナンス、と進み、サイトの状態でオフラインを選択し、設定を保存する。これで管理者以外がアクセスするとメンテナンス中のアナウンス画面が表示されることになる。
サイト側の下準備ができたらアップデート用のファイルを用意しよう。公式サイトからDrupal6.13のパッケージをダウンロードする。ローカルで解凍するとDrupal-6.13 というフォルダが抽出されるはずだ。
さて、アップデートといっても実際にはファイルを入れ替える(もしくは単に上書きする)だけだが、解凍したディレクトリを丸ごとサーバーにアップロードしたのでは、十中八九失敗するだろう。試す気は無いが、おそらくDrupal のインストール画面が表示される結果になるはずだ。
すでにサイトは運営されているのだから何がしかのサイトデータやサイト設定がサーバー上にファイルとして存在している。多くはデーターベース内に格納されているが、webサイトの構造上、すべてをデータベースにするのは不可能で、なんからの静的ファイルが存在しているのだ。それらが上書き、もしくはそれらのファイルへのリンク構造が破綻するとサイトはまともに動かなくなる。よってそれらに干渉しそうなものを排除するか、もしくは自前でマージしなくてはならない。
なにやらめんどくさそうだが、実際はそうでもない。前回のアップデート(version6.12)に関して言えば、ファイルの更新日は2009/05/14であった。つまり、それ以前の更新日付のファイルは、前回とまったく同じものであり修正は加えられていない(と思われる)、2009/05/14 以降に作成または修正されたファイルだけアップロードすればアップデートできる(はず)なのである。
この考えでいくとルートディレクトリにあるファイルをほぼすべて必要ない。CHANGELOG.txt は更新履歴を記載した単なるテキストファイルなのでこれも必要ない。scriptsフォルダのように元からアップロードしてないものや2009/05/14 以降に修正の加えられていないファイル(コアテーマなどの各.infoファイルは7/2日付になっているが、これはパッケージスクリプトを通す際に更新日付やIDが埋め込まれるためで無視して構わない)を除外していくと、最終的にincludes、misc、modules、のフォルダーが残った。これらをサーバーにアップロードすれば良いようだ。
もし、includes、misc、modules、のディレクトリ内にあるコアファイルに独自のカスタマイズを加えている場合(当サイトもいくつかのファイルに直に変更を加えている)は、面倒だがひとつづつカスタマイズしたコードを6.13ファイルにマージしなくてはならない。
ファイルの準備ができたらそのままサーバーに上書きする。その後、サイトにアクセスし、管理セクション>リポート>現状報告、をチェックしよう。おそらくデータベースの更新というメッセージが出ているはずだ。これはモジュールのアップデートをおこなった時などに表示されるもので、データベース内のバージョンとシステムに組み込まれたモジュールファイルのすりあわせをおこなう。アップデートによってデーターベース内のモジュールデータが古くなったので最新データの確認と更新をおこなうように、という指示だ。画面のメッセージにしたがってデータベースの更新をおこなおう。更新の確認後にエラーメッセージが出てなければ無事にアップデート完了である。
この手法で実際にアップデート(既存のサイトに適用)をおこなったわけだが、いまのところ、これといった不都合は起きていない。とりあえずはこのまま様子を見ることにする。
Utano Schell