AlsoMigrate
Migrate multiple tables with similar schema at once.
Requirements
gem install also_migrate
Configure
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' ]
}
]
Options:
-
sourceDatabase schema source table -
destinationDatabase schema destination table (can also be an array of tables) -
addCreate columns that the original table doesn't have (defaults to none) -
subtractExclude columns from the original table (defaults to none) -
ignoreIgnore migrations that apply to certain columns (defaults to none) -
indexesOnly 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.