Migrate multiple tables with similar schema at once
Ruby
Switch branches/tags
Nothing to show
Pull request Compare This branch is 1 commit ahead, 6 commits behind winton:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config
lib
rails
spec
.gitignore
LICENSE
README.md
Rakefile
also_migrate.gemspec
init.rb

README.md

AlsoMigrate

Migrate multiple tables with similar schema at once.

Requirements

gem install also_migrate

Configure

In your migration:

class CreateArticleArchives < ActiveRecord::Migration
  def self.up
    AlsoMigrate.configuration = [
      {
        :source => 'articles',
        :destination => 'article_archives',
        :add => [
          # Parameters to ActiveRecord::ConnectionAdapters::SchemaStatements#add_column
          [ 'deleted_at', :datetime, {} ]
        ],
        :subtract => 'restored_at',
        :ignore => 'deleted_at',
        :indexes => 'id'
      },
      {
        :source => 'users',
        :destination => [ 'banned_users', 'deleted_users' ]
      }
    ]
    AlsoMigrate::Migrator.migrate
  end

  def self.down
  end
end

Options:

  • source Database schema source table
  • destination Database schema destination table (can also be an array of tables)
  • 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!