どうも簡単なスクリプトを書いた方が早いみたいなのでそうする。以下を実行すると指定した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; }