Movable Type 3.2-ja 新規インスコ in ロリポ。
ついでに、DB を BarkeleyDB から SQLiteへ変更しますたー。
事の発端は、3.2で BarkeleyDB なんてありえないってな話が色んなところでちらほらと。(笑) で、壱氏より、ロリポで SQLite が使えるよーんと甘いささやきがあったので、じゃぁいっちょ DB をコンバートしてしまえっつうことだったんですが・・・。
これが、なかなか思うようにうまく行かず。
当初、MT標準のコンバータでコンバートしてたんですけど、途中で終わっちゃって、最後まで行かず。じゃあ、3.2へアップグレードしてからコンバートすりゃうまく行くかなと思って、やってみたけどうまく行かず。そんな中、またまた壱氏より、(o)氏のところに良いプラグインがあるよんと言うことだったので、こいつを試してみることに。そしたら、あっさりコンバートできたもんだから、後は3.2へアップグレードするだけだなぁなんてほくそ笑んでいたら、なんだかトラックバック周りの表示がおかしい。
BarkeleyDB に戻すと問題なく表示される。でも、SQLiteにコンバートすると、駄目。なんじゃこりゃって言うことで、恐れ多くも(o)氏へ質問してみたら~・・・「そりゃぁ、あんた。トラックバックのDBが壊れてるんじゃないの?」っていう結論に達してしまったわけで。(泣)
ogawaさん、お手数をおかけして申し訳ございませんでした。ありがとうございました。
じゃぁ、これを機会にいっその事、クリーンインストールしようそうしようっていうことになったのですよ。素人の手遊びで、弄って弄って来たので、カスが結構たまってるだろうし。(笑)
で、無事完了しました。以下ロリポにおいてアップグレードじゃなくて新規インストールして DB を Barkeley から SQLiteにする手順・・・て言うか、ただのメモ書きだなこりゃ。(苦笑)
- まずはテンプレートをバックアップ。
ここ参照。 - 続いて、MTのシステムとブログのアーカイブがあるデイレクトリを丸ごとローカルへ転送。
私のばやい、システムとブログのおき場所を別ディレクトリにしてるんで・・・。BarkeleyDB の場合、何かあったら、とりあえずこいつをごそっと戻してあげれば、元に戻るんで。 - MTへログインして、設定関連を片っ端からハードコピー。
どういう設定になってたかを確認するのに一番手間がかからないかも。ただし、ハードコピーじゃ見えないところはもちろん手動でコピペ。(笑) - MT管理メニューからエントリーのエクスポート。エクスポートのやり方はこちら。
エントリー881、コメント1795、トラックバック593で2.7MBとのテキストファイルになりやしたー。
で、ここで重要なのがテキストの文字コードと開業コード。何を隠そう、一回目は何も考えずにやったので、全然インポートしてくれなかったのですよ。なので最初へ戻って、エクスポートをやり直したという(苦笑)。私の場合、文字コードはutf-8Nで改行コードはLFでした。って言うか、一回3.2を新規インスコしてエントリーして書き出してみたら、その文字コードと改行コードだったのでそうしただけです。(笑) - さて、ここまでできたら、サーバー上にあるMTの既存ファイルを思い切って削除。そんでもって、MT3.2を新規でインスコ。
インスコはロリポ公式のマニュアルをきちんと見れば苦もなくできますが、SQLite を使用する場合はこの辺が非常に参考になります。 - 新規でDBをSQLiteに設定しインスコしたら後はエクスポートしたエントリーデータを書き戻してやるだけ。
- まず、MT.cgiのあるディレクトリ直下にimportというディレクトリを作成。
- そこへ、エクスポートしたエントリーデータをアップロード。
- アップロードできたら、MTの管理画面から「読み込み/書き出し」をクリックし、「エントリーの投稿者を自分にする」にチェックつけて、「読み込み/書き出し」ボタンをぽちっとな。(笑)
ひとつのブログを複数人の投稿者で運用している場合は、ここのチェックはつけちゃ駄目です。念のため。 - これで後は全部読み込んでくれるのを待ってるだけかと思うと、そうは問屋がおろしません。(笑)
データが大きすぎる(2.7MB)ので、一気に読んでくれません。途中で止まります。だからと言って、あわてずに。管理画面上でどこでエントリーの読み込みが止まったかわかるので、テキストエディタで検索かけて、その止まった次のエントリーから読み込むように、エクスポートしたエントリーデータを修正します。これを何回か繰り返すと、完全にデータを戻すことができます。だいたい200KBぐらいづつしか読んでくれなかった感じです。 - エントリーデータを読み込めれば、後は、バックアップをとったテンプレートファイルをこの手順で戻すだけ。
以上、こんな感じです。
ちなみに、エントリーのインポートですが、同じデータが入ったファイルをインポートすると、重複してインポートされてしまう(同じエントリーが2個とか)ので、インポートが終わったファイルは必ず削除してください。
後、3.2で再構築時のパフォーマンスが悪い(メモリ消費が大きい)という既知の問題があるので、ここを参照してファイルを修正しておきました。
で、3.2でSQLiteにした結果ですが・・・気持ち、パフォーマンスが良くなった様なならなかったような。(笑)
参照サイト(ありがとうございました。)
■TB to 3.2-ja 再構築時のパフォーマンス(その2) by 小粋空間
■TB to MT 3.2でrecently_commented_onとBerkeleyDBに嵌っている人が多い件について by Ogawa::Memoranda
■TB to インストールしよう(ロリポップ編) Ver3.2-ja対応版 – SQLiteバージョン by MovableTypeで行こう!
■TB to Movable Type 3.2アップグレードの際にBerkeley DBから他のデータベースに変える手順 by The blog of H.Fujimoto
こんにちは。
ご無沙汰してます(笑)。
TBありがとうございました。
肝心のパフォーマンス、劇的に改善された訳ではないようですね…。
でもファイルがひとつしかできないみたいなのでバックアップはお手軽かもしれません。
>yujiroさん
こんちわ。
そうなんですよね。劇的な改善はありませんでした。(笑)
ただ、再構築とかでの安定感は増した感じですねぇ。
そうそう、DBがワンファイルっていうのはすっきりしててすごく良いですね。
( ^-^)ノ(* ^-^)ノこんばんわぁ♪
この記事を見てやる気になりました。
いろいろ悩んだりもしましたが、地道にやってうまくできました。
どうもありがとうございます。
TBさせてくださいね~(o^∇^o)ノ
border.さん こんばんわ
この3連休、カスタマイズを考えながら3.2へバージョンアップを試みました。…が、…-2なので大丈夫かとバックアップをとらずにしたのが、間違いの元。案の定!?アップグレード開始をしたら「アップグレード中にエラーが発生しました: Can’t call method “id” on an undefined value at lib/MT/Entry.pm line 423.」とでてきてしまい、泣く泣く、ディレクトリを変えインストールからやり直しました。インストールは無事終えたのですが、案の定1から始める状態。。。フォロー記事を探しながらborder.さんのこちらへ来て、「dbをごそっと戻せば」へ運を託して、もとのディレクトリからごそっとおろして新しいディレクトリへ入れてみたのです。mt.cgiを実行するとmt-upgrade.cgiへ飛んでしまい、先ほどと同じ「アップグレード開始」になってしまうので、そのまま始めると∞、エラーの振出へ戻ってしまいました。
もし、よろしかったらアドバイスいただけませんでしょうか…?
>tsukinoさん
こんばわんわー。
あちゃー。
DBをごそっと元へ戻す云々っていうのは、BarkleyDB使用時に、既存のシステムが生きているところへ戻せばオッケーっていうことなんですよねぇ…。
コメントを読んだ限りでは、新しいバーシジョンのシステムへ旧システムのDBを入れてるような感じに見受けられるんですが…。
どう対処したら良いのか何とも言えないのですが、以前のヴァージョンのシステムを入れなおして、DBを戻してやったらいかがでしょうか?
いずれにしても、エントリー自体のバックアップはお持ちです?
エントリー自体のバックアップがあるのであれば、新しく構築しなおすのが良いかと思います。
お力になれず申し訳ない。
早々のコメント、ありがどうございます~ T-T
夢の中で再構築イメージを考えながらうつらうつら…眠れなかった次第です。
>新しいバーシジョンのシステムへ旧システムのDBを入れてるような感じ
その通りです。しかもエラーが出た後DLしたDBなのできっと、同じエラーメッセージがでるのでは…という想像はつくのですが。
エントリー自体のバックアップ(書き出し)は、今回はとっておらず、前回の書き出し後、PCも交換したため、ハードディスクやMOなどにものこっておりません。。。
残っているものは、サーバー上の公開用ディレクトリ/blog/に/archives/2004~のエントリーログらしきものがあります。
最後の望みはこのログらしいものからもどせないのかな~という道しかないような気がしますが。
以前のヴァージョンのシステム、手元にない場合はどこかで手に入れる方法はあるのでしょうか?
なんにしても、やはり時間がかかっても、まるっとおろしておけばよかった~~です。TTT-TTT
ご返事いただけるだけでも次回の回復力になりますのです。本当にありがとうございます。
やはり以前のヴァージョンは自己保存ものしかなさそうですね…^^;;;
半日やる気が起きませんでしたが、やっと気力ももどってきました。
同じような復旧作業をされた方を見つけ、ご指南いただくことができました。
サーバー上に残ったhtmlファイルをDLして「書き出し」形式に合わせてtextエディターで修正しながら、一つずつ確認しながらupしてみました。手作業ですので気が遠くなりますが、なんとか復旧できそうです。
いろいろご相談にのっていただきましてありがとうございます。
>tsukino さん
お力添えできず、大変申し訳ございません。m(__)m
ああ…エントリー書き出してなかったのですね…。
となると、確かに残った html を加工して戻すしかないですねぇ。
地道な作業だとは思いますが、あまり根をつめずに頑張ってください。m(__)m
Movable Type 3.2-ja 新規インストール
Movable Type 3.2-ja のアップデート、BarkeleyDB で…