Ruby on Railsで便利だと感じる機能の一つがデータベースのマイグレーションだ。通常、Webシステムを開発する場合、初回構築時にはE-R図も作成して管理するものの、運用の中で徐々に増えていくフィールドについてはあまり管理されない。

ピクチャ 65.png

データベースを解析して差分を抽出する

 

そのため構造が分かりづらくなったり、開発版との差分管理も煩雑化する。そこで使ってみたいのがMySQL table patcherだ。

今回紹介するオープンソース・ソフトウェアはMySQL table patcher、MySQLの差分チェックソフトウェアだ。

MySQL table patcherは差分の発生している二つのデータベースが必要になる。新しい方をSQLファイルにし、それと現状のデータベースとを比較する。dumpファイルなのでcreate table〜などが書かれたそのままでいい。結果はalter tableに置き換わって出力される。なおMySQL table patcherはデータベース構造のみ対応する(データは不可)。

ピクチャ 66.png

ヘルプ

 

足りないフィールドは追加され、不要なフィールドは削除するSQLが生成される。逆に既存のデータベースへ戻す、リバースモードもある。テーブルやインデックス、フィールドの型なども合わせてチェックされる。Webシステムのバージョンアップの際にはきっと役に立つはずだ。

ソースコードに比べるとデータベースの管理は煩雑になりやすい。しかしデータベース管理者を立てて管理するのはコスト的に難しいこともあるだろう。そのような時はMySQL table patcherを使い、差分をバージョン管理システムに入れるなどして管理していけば良い。

 

**MySQL table patcher

 **
http://bisqwit.iki.fi/source/sqlupdate.html