60093


既存の Rails マイグレーションを別の環境のMySQLで実行したので  
当然一致してると思うんですが上長にエビデンスを出す必要があります

全テーブルのスキーマを表示するようなSQLってあるんでしょうか  
schema_name というのは取得できるみたいなのですが  
全テーブルの全カラムのタイプやサイズ、インデックス情報、FK制約  
等を取得したいです

文字列として取得できれば diff をとるだけでいいのですが  
簡単な方法はありますでしょうか


CC BY-SA 4.0
2019-10-29T11:36:27.307
60084
2019-10-29T23:21:32.457
question
mysql
2つのMySQLのスキーマが一致してるか確認する方法


両方の環境にアクセスできる状態であれば  
Oracleが提供しているMysqlUtilitiesの中にmysqldiffというツールがあります。  
<https://docs.oracle.com/cd/E17952_01/mysql-utilities-1.5-en/mysqldiff.html>

もし「別環境で接続できない」や「ツールが導入できない」ということであればダンプを作成して比較するがもっとも良いと思います。  
mysqldumpがバックアップ用のツールですが、最も使いやすいと思います。  
<https://dev.mysql.com/doc/refman/5.6/ja/mysqldump.html>

スキーマだけを取得する場合は以下のように記述すればスキーマのみ取得できます。

[code]

    mysqldump --no-data DATABASE_NAME > DATABASE_NAME.sql
    
[/code]

その他にもオプションがいろいろありますので、そちらは公式リファレンスを確認してください。


CC BY-SA 4.0
2019-10-29T23:21:32.457
60093
2019-10-29T23:21:32.457
22665
60084
answer