[MySQL] MySQLのバージョン管理ソフトを作っている
年末だけど、久々に長く使えそうなツールを作っているのでメモ。
PostgreSQLには https://github.com/guedes/pgvm という結構いい感じのバージョン管理ソフトがあって、複数のバージョンのPostgreSQLをインストールできる。
これのいいところは、1つのバージョンで複数のDBを持つことが出来るところ。
たとえば、こうするとPostgreSQLの9.1.3がインストールされて、hogeとfugaという複数のデータベースファイルが作られる。
1つのDBに"create databae hoge; create databae fuga"ってしても良いのだけど、完全にDB自体を分けることが出来る。
なんかいいよね。
$ pgvm install 9.1.3 $ pgvm use 9.1.3 $ pgvm cluster create hoge $ pgvm cluster create huga
逆にMySQLだといままでMySQL Sandboxというのを使ってきた。
データベース自体を分けることは出来ないのだけど、まあ普通に使ってきた。
が不満点があって、それはライブラリのパスが通っていないのでRails+mysql2とかするとmysql2のコンパイルが通らないので、ちょっと苦労する。
http://d.hatena.ne.jp/longicorn/20130217#p1 こんな事が必要になる。
さて、で仕事でMySQLを使いまくっていて、複数のバージョンのMySQLを使う身としては最近そろそろ嫌になってきた。
嫌になってきて、探すとそれっぽいのがあるがどうもまともに使えない。多分自分の環境がダメな気もするが、どっちみちライブラリパスとかの問題には対応していないはず。
https://github.com/xaicron/mysqlenv
https://github.com/shim0mura/mysqlenv
ということで、ここ最近時間をみてpgvmっぽいmysqlvcというスクリプトをちょこちょこ作っている。
https://github.com/longicorn/mysqlvc
ひとまず、5.1.73、5.5.35、5.6.15ではなんとなくだけど動作確認済み(Mac、Linux)。
上記のmysqlenvと同じくmysql-buildというmysqlをコンパイルしてインストールしてくれる便利なツールを利用している。
https://github.com/kamipo/mysql-build
使い方はまあREADME.mdを見ればわかるとは思う。
今色々変更しまくりなので、コマンドは変わるかもしれない。
自分以外でも使ってくれる人がいたら嬉しいけど、基本自分用です。
しかし、自分が使うツールを作るのは楽しい。仕事より楽しい。
仕様策定者と使用者が同じだからかなぁ。