Vagrant の Sahara を試す (Vagrant 1.1 / Windows 7)

前回で Vagrant の環境は整えた所で、データの初期化も自動化したかったが、それよりも使いたかった Sahara を試してみることに。

が、どうやら公式には対応していないとの事。。。が! ryuzee さんが神対応をキメてくれていたとの事でさっそく試してみる。

インストール

導入方法は ryuzee さんのサイトにある通りでOK。bundler が入っていなければ入れる。以下は Git shell (Github for Windows についてる)でやってます。ruby1.9.3p327 です。

> gem install bandler
Fetching: bundler-1.3.5.gem (100%)
Successfully installed bundler-1.3.5
1 gem installed
Installing ri documentation for bundler-1.3.5...
Installing RDoc documentation for bundler-1.3.5...
> git clone https://github.com/ryuzee/sahara.git
> cd sahara
> bundle install
Fetching gem metadata from http://rubygems.org/..........
Fetching gem metadata from http://rubygems.org/..
Resolving dependencies...
Using rake (0.9.2.2)
Installing Platform (0.4.0)
Using bundler (1.3.5)
Installing open4 (1.3.0)
Installing popen4 (0.1.2)
Installing thor (0.18.1)
Using sahara (0.0.14) from source at .
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
> bundle exec rake build
sahara 0.0.14 built to pkg/sahara-0.0.14.gem.
> vagrant plugin install .\pkg\sahara-0.0.14.gem
Installing the '.\pkg\sahara-0.0.14.gem' plugin. This can take a few minutes...
Installed the plugin 'sahara (0.0.14)'!

特に問題無く入りました。未検証との事だったのですが、全然大丈夫ですね。

試してみる

前回 PostgreSQL を入れたので、検証も PostgreSQL のデータを見て確認しています。ここからは Vagrant ファイルがあるフォルダに移動して行います。

> vagrant sandbox on
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
> vagrant sandbox status
[default] Sandbox mode is on

sandbox が有効になったので PostgreSQL のデータを適当に変更する。で、rollback します。

> vagrant sandbox rollback
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

おお、バッチリ戻ってますね!
さらにデータを変更してみる。で、今度は commit してみます。

> vagrant sandbox commit
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

おお、ちゃんと反映されてます。ここで rollback しても確かに反映されてままになってます。

次に、また sandbox を有効にしデータをさらに変更して、今度は off してみます。期待値としては commit していないので反映はされないはずです。

> vagrant sandbox on
> vagrant sandbox off
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
> vagrant sandbox status
[default] Sandbox mode is off

が、ここはデータが反映されてしまいました。ここだけ期待通りいきませんでした。

ですが、rollback が正常に動いているのでやりたいことは全然実現できそうです、すげぇなー。マジすげぇなー。