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 が最初から実行されます。