skillup

技術ブログ

Database

MySQLのマイグレーション(workbench使用)

投稿日:2015年12月4日 更新日:

以前cakePHPにてマイグレーションの手法を紹介したのですが、当然PHP以外をつかっていたり、PHPでもcakeを使っていなければこの方法は通用しません。

何か、汎用的にデータベースの構造の差分がチェックできるツールはないかなと思い、探していたところ下記ツールがよいとの情報を得て、早速試してみました。

以前紹介したA5M2にあればベストだったんですが、この機能はついていませんでした・・・

MySQL workbench

https://www-jp.mysql.com/products/workbench/

Oracleのアカウントとかをもってないと登録作業なんかがいろいろと面倒くさいです。

また日本語化することもできるようですが、かなり面倒くさそうだったのと(爆)、情報が結構でてくるので、なんとか英語でやることにしました。

ちなみに2015年12月上旬現在、最新は6.3です。

mysqldump

差分のチェックですが、データベースを直接みてもいいですが、自分は怖かったので構造だけをダンプし、そのファイルをベースに差分をチェックしました。

下記コマンドでダンプを行います。

実行したあとにファイルをみているとひたすらcreate文が書かれているのがわかると思います。

MySQL workbentch

ここからツールを使います。

ツールを起動後、File→NewModelを実行すると新しい画面が作られます。

新しい画面に移って、Database→Synchronize With Any Sourceを押すとダイアログが開きますので、Next。

Database To TakeUpdates FromとDatabase To Receive Updatesにそれぞれdumpで作ったテーブルの構造ファイル(~.sql)を入れてあげればOKです。差分SQLを保存するパスもいれてあげましょう。

その後、Nextを入れた後、チェックボックスをいれてあげて、進めてあげると差分チェックをしてくれます。

SQL文も書かれていますが、これはReceive UpdatesをTakeUpdatesにするためのSQL文という意味です。

参考リンク

MySQL Workbenchを使ってスキーマの差分をとってALTER文を生成

-Database
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

DBの構造について メモリとHDD

データベースについてまたまた学習中。 覚えておきたいポイントなど。 データを収めておくべき媒体では「記憶コスト(単位金額当たりの容量)」と「アクセス速度」の2つが重要なパラメータ メモリとHDDでは前 …

no image

テストのダミーデータ作成

データベースに大量のデータを作りたいときにいつもあああやhoge,aaaですとデータという感じがしないですし、抽出や集計ができません。 なるべく自然に近いデータが欲しいのですが、簡単に作れる方法があり …

no image

JavaでのSQLの書き方

ちょっと小ネタです。 通常SQLを記述する場合、縦に分けて書くのが見た目にも見やすく、保守性も高いです。 例として

と書くよりは、 [ …

no image

Cakeでのリレーションについて

いまさらながらCakeのリレーションについての復習。 基本から。 Contents1 基本的なリレーション1.1 1対N1.2 N対11.3 動的な紐づけ 基本的なリレーション 下記のようなテーブル構 …

no image

JPAでのリレーションに関して

JPAではテーブルをクラスで定義します。もちろん例外とかはいろいろあるのですが、1テーブル1クラスというつくりで、これをエンティティと呼びます。 もともとクラスを作ってからDBを作成したり、JTAの規 …

アーカイブ