SS Migrationについて - shirasagi/shirasagi GitHub Wiki
rake ss:migrate
を実行するための用意.
ファイル
${RAILS_ROOT}/lib/migrations/MODULE_NAME/YYYYMMDDHHMMSS_foo_bar.rb
を作る.
YYYYMMDDHHMMSSは既存の全てのものよりも新しくするのが無難.
ファイル内容を
class SS::MigrationYYYYMMDDHHMMSS
def change
# ここに実行したい処理を書く
end
end
とする.
テストは
${RAILS_ROOT}/spec/lib/migrations/YYYYMMDDHHMMSS_foo_bar_spec.rb
に書く.
require Rails.root.join('lib/migrations/MODULE_NAME/YYYYMMDDHHMMSS_foo_bar.rb')
を実行しなければならない.ディレクトリ構造が微妙に違うので勝手に
SS::MigrationYYYYMMDDHHMMSS
クラスが読み込まれないため.
既存の 20150408081234_enable_member_state.rb
とそのテストを参考にすると良い.
リカバリ
SS Migration のファイルを全て再実行するには ss_migration
というコレクションを削除します。
mongo シェルの場合
db.ss_migrations.drop();
Rails Console の場合:
SS::Migration.delete_all
削除した後、
rake ss:migrate
を実行すると、SS Migartion が最初から実行されます。