- 使い方スライド(公式)
- 入手
- 接続先データベースとエディタの設定
- ヘルプ
- 初期化
- マイグレーションの流れ
- マイグレーションファイルを作成する
- マイグレーションファイルをデータベースに適用する
- マイグレーションファイルを戻す
- マイグレーションファイルを再度適用する
- マイグレーションファイルを削除する
- マイグレーションファイルの一覧を表示する
- マイグレーションファイルの中身を表示する
- データベースを切り替えた時の動作
使い方スライド(公式)
Migr8.rb チュートリアル from kwatch
www.slideshare.net
入手
curl -Lo migr8.rb http://bit.ly/migr8_rb chmod a+x migr8.rb
接続先データベースとエディタの設定
環境変数MIGR8_COMMAND
とMIGR8_EDITOR
に設定する。
PostgreSQLとemacsの場合は次のようにする。
他の設定は上記スライドを参照。
export MIGR8_COMMAND="psql -qX -U user1 mydb" export MIGR8_EDITOR="emacsclient -n"
ヘルプ
./migr8.rb readme
./migr8.rb help
初期化
./migr8.rb init
マイグレーションの流れ
マイグレーションファイルを作成する
マイグレーションファイルはデータベースオブジェクトの変更をするスクリプト。 YAML形式で書く。
./migr8.rb new --table=users # テーブルを作成 ./migr8.rb new --column=users.group_id # カラムを追加 ./migr8.rb new --index=users.name # インデックスを追加 ./migr8.rb new --unique=users.owner_id # ユニークインデックスを追加
エディタが起動しテンプレートが表示されるので内容を書き換える。
マイグレーションファイルをデータベースに適用する
マイグレーションファイルを適用することでデータベースオブジェクトを変更する。
./migr8.rb up # 1つだけ適用 ./migr8.rb up -n 3 # 3つ適用 ./migr8.rb up -a # 全部適用
マイグレーションファイルを戻す
戻すことでデータベースオブジェクトへの変更を戻すことができる。
./migr8.rb down # 1つだけ戻す ./migr8.rb down -n 3 # 3つ戻す ./migr8.rb down --ALL # 全部戻す
マイグレーションファイルを再度適用する
戻してからエディタで修正し、再び./migr8.rb up
で適用する。
またはredoで1つ戻し、再度適用する。
./migr8.rb redo # 1つだけ戻し、再度適用する ./migr8.rb redo -n 3 # 3つ戻し、再度適用する ./migr8.rb redo --ALL # 全部戻し、再度適用する
マイグレーションファイルを削除する
マイグレーションファイルを完全になかったことにするには、まずup
していたらdown
して取り消す。
次にdelete --Imsure
で削除する。
./migr8.rb down
./migr8.rb delete --Imsure version
マイグレーションファイルの一覧を表示する
./migr8.rb status
マイグレーションファイルの中身を表示する
./migr8.rb show # 直近の1件を表示 ./migr8.rb show version # 指定したバージョンを表示
データベースを切り替えた時の動作
まず./migr8.rb status
でどのマイグレーションファイルを適用すべきか確認する。
データベースに適用されていないマイグレーションファイルがある時は(not applied)
と表示される。
up
で適用する。
apply
で個別のバージョンを適用できる。
./migr8.rb up # 未適用のうち最も古いものを適用 ./migr8.rb apply version # 指定したバージョンを適用 適用すべきマイグレーションファイルはmigr8/history.txtに格納されている。 実際に適用されたマイグレーションファイルはデータベース内の_migr8_historyに格納されている。