どうも簡単なスクリプトを書いた方が早いみたいなのでそうする。以下を実行すると指定したDBの全てのテーブルに show create table した結果が出力されます。mysqldupのスキーマのみオプションでは重厚すぎる場合などに。二つのDBに対して実行した結果をdiffで比べて簡易mysqldiffとしても使えます。
GitHub Gist – mysql_all_create_tables_for_php
<?php
$con = new mysqli('localhost', 'root', 'pw', 'dbname');
$mysqli_result = $con->query('show tables');
$table_name_array = $mysqli_result->fetch_all(MYSQLI_BOTH);
$mysqli_result = null;
foreach ($table_name_array as $row) {
$mysqli_result = $con->query('show create table ' . $row[0]);
$create_table = $mysqli_result->fetch_array();
echo $create_table[1] . "\r\n\r\n";
$mysqli_result = null;
}