Web + Life Hack

〜True But Useless〜

【rails】【db】rake db:migrateのニッチなやり方

マイグレーションファイルを追加した際に、
rake db:migrateでも出来ますが、
他のテーブルや既存DBのスキーマに影響を与えたくない時や
後から追加したマイグレーションファイルだけ実行したいときに便利な
やり方です。

rake db:migrate:up VERSION=作成したマイグレーションの日付



さっそく、実行例を見て見ましょう。

[g08m11@migrate]$ rake db:migrate:up RAILS_ENV=development VERSION=20140509101012
(in /var/www/g08m11/releases/20140611023738)
==  AddColumnToMasterSearchLocations: migrating ===============================
-- add_column(:master_search_locations, :is_landmark, :boolean, {:default=>false})
   -> 15.8580s
==  AddColumnToMasterSearchLocations: migrated (15.8583s) =====================
<br>

別のバージョンでの実行

[g08m11@migrate]$ rake db:migrate:up RAILS_ENV=development VERSION=20140509022608
(in /var/www/g08m11/releases/20140611023738)
==  CreateUrlItemCounts: migrating ============================================
-- create_table(:url_item_counts)
   -> 0.0782s
==  CreateUrlItemCounts: migrated (0.0785s) ===================================

rake db:migrate:redo などもありますが、
実行したいマイグレーションファイルが分かっているのであれば
ぜひ、お試しを!