2006年1月11日

mt-db-convert.cgi: MTデータベースの相互変換CGIスクリプト

「バークレーDB」から「SQLite」への変換作業を行いましたが生憎反映しない・・

というよりエントリーデータが0に為ってしまいました。 サイトURlへアクセスすれば閲覧は出来ますが管理画面(~/cgi/mt)でのエントリーは0と

恐らく~/cgi/mt/dbからの情報が反映されていない様でした。

相互変換のスクリプトを探してみたところ「ありました」 大変便利な世の中です(笑)

以下メモを残します。

mt-db-convert.zip

Movable TypeのデータベースをBerkeleyDB、MySQL、PostgreSQL、 SQLiteの間で相互に変換するCGIスクリプトです。テスト環境から本番環境への移行、プラグインの開発、 そしてDBのアップグレードなど、データベースを一方から他方に移行したい場合に役に立ちます。DB間の相互変換は、 従来からMovable Typeに付属しているmt-db2sql.cgiと拙作のmt-sql2db.cgiを組み合わせれば実現できましたが、 このスクリプトはそれを単体で実現します。また、mt-sql2db.cgiにあったバグをいくつか修正してあります。


 

インストール方法

mt-db-convert.zipに含まれるmt-db-convert.cgi(MT 3.1xの場合にはmt-db-convert31.cgi)をmt.cgiなどと同じディレクトリにコピーし、 実行パーミッションを設定します。

使用に先立って転送元のDBのバックアップを取っておくこと、 使用後はmt-db-convert.cgiを削除しておくことをお忘れなく。

使用方法

mt-db-convert.cgiでは、mt-db2sql.cgiとは異なり、 あらかじめmt-config.cgiないしmt.cfgの書き換えは必要ありません。変換後に修正してください。

  1. Webブラウザでmt-db-convert.cgiにアクセスします。
  2. 「Source DB Configuration」に転送元の情報を入力します。簡便のため、 デフォルトでmt-config.cgiないしmt.cfgの情報が設定されています(安全のためDBPasswordは設定されません)。 必要に応じて書き換えてください。
  3. 「Destination DB Configuration」に転送先の情報を入力します。 BerkeleyDBの場合にはDataSourceの入力、それ以外の場合にはDataBaseなどの入力が必要になります。 BerkeleyDBのDataSourceはフルパスで入力することをお勧めします。 SQLiteのDatabaseもフルパスで入力することをお勧めします。
  4. 「Convert」ボタンをクリックすると、転送元から転送先にDBの変換が行われます。
  5. 無事変換が終了すると、 以下のようにmt-config.cgiを設定し直すのに参考になるヒント情報が表示されます。これを参考に適宜修正してください。
    Your recommended setting
    -------------------------------------
    # DataSource /home/sites/lolipop.jp/users/chips.jp-urban/web/cgi/mt/db
    # Database ./db/mtdb
    ObjectDriver DBI::sqlite
    Database ./db/mtdb
    -------------------------------------

SQLiteに関するチューニング

mt-db-convert.cgiは、 SQLiteのトランザクション機能を利用したチューニングを行っています。このため、出力先DBをSQLiteにした場合、 mt-db2sql.cgiを使用するのに比べて大幅な高速化が期待できます。参考までに、私の手元の環境では、 BerkeleyDBからSQLiteへの変換が93秒から25秒に短縮されました。

つまり、レンタルサーバーなどではタイムアウトで500 Internal Server Errorになりがちなmt-db2sql.cgiの代用としても使用することができます。

注意事項

  • MT 3.1xと3.2でしか動作確認をしていません。
  • レンタルサーバーなどでは500 Internal Server Errorが出ることがあります。この場合は転送先DBを削除し、時間をおいて再度試みてください。 何度やっても無理な場合にはあきらめてください。
  • 求めに応じて公開を停止する場合があります。

トラックバックURL

このエントリーのトラックバックURL:
http://mobiletechno.jp/mt/mt-tb.cgi/12406

コメントする