My favorites | Sign in
Project Logo
                
Search
for
Updated May 15, 2009 by hirotaka...@gmail.com
Labels: MT
Locales: en, ja
MT_Database_Converter  
Movable TypeのデータベースをDB間で相互にコンバートするCGIスクリプト。

MT Database Converter

Movable TypeのデータベースをDB間で相互にコンバートするCGIスクリプト。

更新履歴

概要

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と記載します。利用しているMovable Typeのバージョンに合わせて読み替えてください。)、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/ogawa/public_html/mt/db
ObjectDriver DBI::sqlite
Database /home/ogawa/public_html/mt/mt_sqlite.db
-------------------------------------

SQLiteに関するチューニング

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

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

注意事項

See Also


Sign in to add a comment
Hosted by Google Code