DRY migration's rollback/forward methods
This commit is contained in:
parent
c6fe49b009
commit
6464d76feb
|
@ -388,23 +388,11 @@ module ActiveRecord
|
|||
end
|
||||
|
||||
def rollback(migrations_path, steps=1)
|
||||
migrator = self.new(:down, migrations_path)
|
||||
start_index = migrator.migrations.index(migrator.current_migration)
|
||||
|
||||
return unless start_index
|
||||
|
||||
finish = migrator.migrations[start_index + steps]
|
||||
down(migrations_path, finish ? finish.version : 0)
|
||||
move(:down, migrations_path, steps)
|
||||
end
|
||||
|
||||
def forward(migrations_path, steps=1)
|
||||
migrator = self.new(:up, migrations_path)
|
||||
start_index = migrator.migrations.index(migrator.current_migration)
|
||||
|
||||
return unless start_index
|
||||
|
||||
finish = migrator.migrations[start_index + steps]
|
||||
up(migrations_path, finish ? finish.version : 0)
|
||||
move(:up, migrations_path, steps)
|
||||
end
|
||||
|
||||
def up(migrations_path, target_version = nil)
|
||||
|
@ -440,6 +428,19 @@ module ActiveRecord
|
|||
# Use the Active Record objects own table_name, or pre/suffix from ActiveRecord::Base if name is a symbol/string
|
||||
name.table_name rescue "#{ActiveRecord::Base.table_name_prefix}#{name}#{ActiveRecord::Base.table_name_suffix}"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def move(direction, migrations_path, steps)
|
||||
migrator = self.new(direction, migrations_path)
|
||||
start_index = migrator.migrations.index(migrator.current_migration)
|
||||
|
||||
if start_index
|
||||
finish = migrator.migrations[start_index + steps]
|
||||
version = finish ? finish.version : 0
|
||||
send(direction, migrations_path, version)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def initialize(direction, migrations_path, target_version = nil)
|
||||
|
|
Loading…
Reference in New Issue