AlsoMigrate

Migrate multiple tables with similar schema at once.

Requirements


gem install also_migrate

Define the model


class Article < ActiveRecord::Base
  also_migrate(
    :article_archives,
    :add => [
      # Parameters to ActiveRecord::ConnectionAdapters::SchemaStatements#add_column
      [ 'deleted_at', :datetime, {} ]
    ],
    :subtract => 'restored_at',
    :ignore => 'deleted_at',
    :indexes => 'id'
  )
end

Options:

  • add Create columns that the original table doesn't have (defaults to none)
  • subtract Exclude columns from the original table (defaults to none)
  • ignore Ignore migrations that apply to certain columns (defaults to none)
  • indexes Only index certain columns (duplicates all indexes by default)

That's it!

Next time you migrate, article_archives is created if it doesn't exist.

Any new migration applied to articles is automatically applied to article_archives.