MySQLで2つのデータベース構造を比較する場合に必要そうなのは
- Table
- Columns
- Index
- Foreign Key
あたりでしょうか。それぞれのチェック方法をまとめてみます。
Table
SELECT TABLE_NAME,ENGINE,TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'org001' order by TABLE_NAME;
http://dev.mysql.com/doc/refman/5.6/ja/tables-table.html
Columns
SELECT COLUMN_NAME,COLUMN_DEFAULT,IS_NULLABLE,DATA_TYPE,COLLATION_NAME,COLUMN_TYPE,COLUMN_KEY,EXTRA FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = 'org001' and table_name = 'turbine_user' order by COLUMN_NAME;
http://dev.mysql.com/doc/refman/5.6/ja/columns-table.html
IndexとForeign Key
TABLE_CONSTRAINTSもありますが、KEY_COLUMN_USAGEに内包されているっぽいので、KEY_COLUMN_USAGEの方を使ってしまうのがよさそうです。
SELECT CONSTRAINT_NAME,COLUMN_NAME,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE table_schema = 'org001' and table_name = 'turbine_role_permission' order by CONSTRAINT_NAME,COLUMN_NAME;
http://dev.mysql.com/doc/refman/5.6/ja/key-column-usage-table.html
http://dev.mysql.com/doc/refman/5.6/ja/table-constraints-table.html
参考
http://kkkw.hatenablog.jp/entry/20120706