Movable Type 備忘録
エントリ内に組み込まれたURLを一括置換する
- Next Page: エントリを更新された順にソートする
- Prev Page: 最近のトラックバックをエントリごとに一覧する
先日、わたしのブログではこちらのエントリでMovableTypeのタグを使用するのカスタマイズを行ったため、今までエントリに記述してきた自サイトのURL(イメージファイルのリンクとか、ページ間のリンク)を<$MTBlogURL$>に置き換える作業を行いました。
このカスタマイズとっても便利なんですよ
将来的に、サーバーのお引越しなんてことになって、URLが変わったとしてもページ間のリンクにまったく影響なくお引越しすることができます。
その他いろいろ特典あり!!
お気に入りのカスタマイズの1つなんです。
さすがにがんばり屋のわたし(自分で言ってるし)でも、すべてのエントリを1つずつ手作業するの面倒だったので、何かいい方法(楽な方法)ないかなぁ…なんて考えてたら、いいこと思いついちゃった。
今回は多数のエントリ内に既に込みこまれてしまっているURL(URLに限らず、クラス名を変更したりなど)を一括置換する方法を紹介します。
エントリ数が十数エントリ程度なら、この方法はオススメしません。
手作業で地道に修正した方がいいかも、です。
また、データベースのデータをいじったり、相互変換が伴う作業となりますので、あまり自信がない人は避けた方がいいかも、です。(もちろん、自己責任でお願い致します。)
プラグインで指定した文字列を変換するようなのがあった気がしますのでそちらを使いつつ、少しずつ手直ししていくといいと思います。
データベースのデータを一括置換
まず、メンテナンス中をアナウンスします。
データ編集中にコメント、トラックバックがされた場合、そのデータは反映されません。ですから、メンテナンス中を必ず訪問者さんにアナウンスします。
MySQLからデータをエキスポートします。
MySQL 以外のデータベースをお使いの人は、まずデータを MySQL にコピーしてください。
MovableTypeでBerkeleyDB、SQLiteからMySQLに移行するで各データベースから MySQL にデータをコピーする方法を紹介しています。 MovableType(ムーバブルタイプ)で管理されているデータを編集するだけなので、mt-config.cgi の修正は行わずに、データのコピーだけ行ってくれればOKです。 元のデータベース(例えば、SQLite)には何ら影響ありません。データのエキスポート方法は、こちらのMovableTypeのデータベースごとバックアップするで紹介している方法でエキスポートします。
ただし、すべてのテーブルをエキスポートする必要はありません。 mt_entry テーブルのみエキスポートします。MySQL をお使いの人は、オリジナルデータをいじることになりますので、必ずエキスポートしたファイルとは別にバックアップを別途保存するようお願いします。mt_entry テーブル内のレコード数をメモっておいてください。
エキスポートしたファイルを編集します。
エキスポートしたデータをテキストエディタで開いてください。 そして、まず編集したいキーワードを検索してみます。
例えば、わたしはエントリ内で使われている自サイトのURLを置換したかったので、<a href="http://bizcaz.com/ で検索して一括置換しても問題ないことを確認しました。
問題ないことを確認したら、思い切って一括置換しちゃいます。
置換前 <a href="http://bizcaz.com/ 置換後 <a href="<$MTBlogURL$>置換できたらファイルを保存します。
既存のデータを削除します。
さぁ、いよいよ置換したデータをデータベースに反映させる作業に入ります。
しつこいようですが、MySQL をお使いの人は、オリジナルデータをいじることになりますので、必ずエキスポートしたファイルとは別にバックアップしたことを確認してください。
バックアップしていない場合、以降の作業を行ってしまうとデータは元に戻せませんので注意してください。
逆に、MySQL 以外のデータベースをお使いの人は、MySQL のデータは所詮コピーなので、この時点では本データにはまったく影響ありません。
Warning: include() [function.include]: URL file-access is disabled in the server configuration in /virtual/bzbell/public_html/archives/2006/06/04-185529.php on line 126
Warning: include(http://bizcaz.com/widget/litebox.php?url=http://bizcaz.com/image/zu/phpadmin5.gif&width=318&height=356&title=) [function.include]: failed to open stream: no suitable wrapper could be found in /virtual/bzbell/public_html/archives/2006/06/04-185529.php on line 126
Warning: include() [function.include]: Failed opening 'http://bizcaz.com/widget/litebox.php?url=http://bizcaz.com/image/zu/phpadmin5.gif&width=318&height=356&title=' for inclusion (include_path='.:/usr/local/lib/php') in /virtual/bzbell/public_html/archives/2006/06/04-185529.php on line 126
まず、既に存在しているデータを phpMyAdmin ツールにて削除します。 ログイン方法などの手順は省かせてもらいます。
お使いのデータベース名のリンクがあると思いますので、そのリンクをクリックします。
そうすると、右のような画面が表示されます。図にあるように mt_entry テーブルをチェックして、画面下にあるドロップダウンから「空にする」を選択すると mt_entry 内のデータを空にすることができます。
Warning: include() [function.include]: URL file-access is disabled in the server configuration in /virtual/bzbell/public_html/archives/2006/06/04-185529.php on line 134
Warning: include(http://bizcaz.com/widget/litebox.php?url=http://bizcaz.com/image/zu/phpadmin4.gif&width=316&height=170&noscript=1) [function.include]: failed to open stream: no suitable wrapper could be found in /virtual/bzbell/public_html/archives/2006/06/04-185529.php on line 134
Warning: include() [function.include]: Failed opening 'http://bizcaz.com/widget/litebox.php?url=http://bizcaz.com/image/zu/phpadmin4.gif&width=316&height=170&noscript=1' for inclusion (include_path='.:/usr/local/lib/php') in /virtual/bzbell/public_html/archives/2006/06/04-185529.php on line 134
次に、置換後のデータを更新します。
画面上の方に「SQL」というリンクがあります。 それをクリックすると、右のような画面が表示されます。
置換したファイルサイズが 2MB 以内なら、上記図の赤い字の部分でバックアップファイルを選択してから、青い字のボタンで実行するとデータが反映されます。
ファイルサイズが 2MB 以上の場合、ファイルの内容をコピーして、画面上にある「データベース●●●にSQL 照会を実行する」の入力エリアに貼り付けます。
そして、その右下にある「実行する」ボタンをクリックすると、データが反映されます。データが反映されたことを確認します。
画面上にある「構造」というリンクをクリックすると、MovableType(ムーバブルタイプ)のテーブル一覧が表示されますね。 その中の mt_entry テーブルのレコード数を確認してください。
作業前にメモったレコード数と同じであればOKです。
違っていた場合、データの置換は失敗しました。 残念ですが、データを置換前にリストアします。リストアの方法は、MovableTypeのデータベースごとバックアップするの下の方で紹介していますので、参考にしてください。
MySQL以外の人は、オリジナルのデータベースに反映します。
データベースに MySQL を使いの人は、以上で作業完了です。 ブラウザから自サイトの表示確認をしてください。
MySQL以外のデータベースをお使いの人は、オリジナルのデータベースをバックアップします。
バックアップ方法は、MovableTypeのデータベースごとバックアップするの上の方で紹介しています。次に、MySQL からお使いのデータベースへの変換を行います。
変換を行うには、MovableTypeでBerkeleyDB、SQLiteからMySQLに移行する::SQLiteからMySQLへの移行失敗例で紹介してる、逆のことを行います。変換ができたら、mt-config.cgi の記述を、お使いのデータベースの設定に戻します。
そして、ブラウザから表示確認を行ってください。一通り表示できればOKです。
表示がおかしいと思ったら残念ですが、迷わずバックアップしたデータを上書きしてください。
以上、長い作業でしたがご苦労様でした。
慣れてくると、30分もかからずデータの一括置換ができます。
ポイントは、
- 落ち着いて作業すること。
- バックアップを必ず取ること。
- ビビってたら何も覚えられないので、データが壊れてもいいから(バックアップあるし…)何事も TRY です。
てなかんじでしょうか。
Trackback Pings(0)
No trackbacks found.
Comments(0)
No comments found.


Post a Comment