Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.
X
Post

MySQL Diff Checkerを作ってみました

これは2つのデータベースのテーブルや、
テーブル内の構造の差分をチェックするphpツールを作ってみました。

ダウンロードはこちらから。

MySQL Diff Checker


開発環境と本番環境など、DB構造で同期を取らないといけない
環境で差分が発生していないか確認する事を用途として想定しています。


使用ライブラリ



本ツール作成にあたり、次のライブラリやプラグインを使用しています。

Smarty
jQuery
Niceforms
Pear Xml_Serializer, Xml_Unserializer


また、サイトテンプレートでは以下のサイトのものを修正して使わせていただいています。

シンプルCSSテンプレート [Cool Web Window]


利用方法


使い方は次のようなものになります。


ファイルをアップロード


上のリンクよりファイルをダウンロードして、それを解凍します。

外部からMySQLへの接続を許可しているのでない限り、
対象のサーバごとにファイル一式をアップロードする必要があります。


アップロード後、tmp/ディレクトリを再帰的に777にします。

該当サーバのindex.phpにアクセスして画面が表示されれば成功です。


DBの構造ファイル作成


MySQLのDB構造ファイルを生成します。


画面にアクセスすると入力フォームが表示されるため、
ここで接続情報を入力します。

DBの接続情報を打ち込めばそれでxmlファイルを生成するのでそれを保存します。
この方法で比較するDBのxmlファイルを2つ用意します。


DB構造の差分チェック



xmlファイルを生成したら、これらの2つのファイルをアップロードします。
これにより、差分が発生しているか否かをチェックできます。



テーブルのリスト。
テーブルに過不足がないか、構造に違いがないかを確認します。
黄色の背景は構造に違いがあること、灰色の背景はテーブルが存在しない事を示します。



個別のテーブルの詳細情報。
このようにして個別のテーブル情報を確認します。


注意事項


このシステムにはユーザ認証機能はつけていません。
また、一度xmlファイルをアップロードすると、
次にxmlファイルをアップロードするまでその状態でファイルが残ります。
そのため、外部からアクセスできる場所にこのツールを設置し、
ファイルをアップロードして比較できる状態にしておくと
DB構造の情報が漏洩する恐れがあります。

basic認証を設定したり、
外部からアクセスできる場所ではxml生成のみを行い、
比較検証はローカル環境で行うなどしてxmlファイルを公開しないような運用をお願いします。

TrackBack URL :

Leave a comment  

name

email

website

Submit comment