ActiveRecord::Migrator#run records version-state after migrating. [#369 state:resolved]
This commit is contained in:
parent
1afae84ab2
commit
f94600bdaf
|
@ -1,5 +1,7 @@
|
|||
*Edge*
|
||||
|
||||
* db:migrate:down and :up update schema_migrations. #369 [Michael Raidel, RaceCondition]
|
||||
|
||||
* PostgreSQL: support :conditions => [':foo::integer', { :foo => 1 }] without treating the ::integer typecast as a bind variable. [Tarmo Tänav]
|
||||
|
||||
* MySQL: rename_column preserves column defaults. #466 [Diego Algorta]
|
||||
|
|
|
@ -399,7 +399,10 @@ module ActiveRecord
|
|||
def run
|
||||
target = migrations.detect { |m| m.version == @target_version }
|
||||
raise UnknownMigrationVersionError.new(@target_version) if target.nil?
|
||||
target.migrate(@direction)
|
||||
unless (up? && migrated.include?(target.version.to_i)) || (down? && !migrated.include?(target.version.to_i))
|
||||
target.migrate(@direction)
|
||||
record_version_state_after_migrating(target.version)
|
||||
end
|
||||
end
|
||||
|
||||
def migrate
|
||||
|
|
|
@ -825,6 +825,21 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
assert !Reminder.table_exists?
|
||||
end
|
||||
|
||||
def test_migrator_double_up
|
||||
assert_equal(0, ActiveRecord::Migrator.current_version)
|
||||
ActiveRecord::Migrator.run(:up, MIGRATIONS_ROOT + "/valid", 1)
|
||||
assert_nothing_raised { ActiveRecord::Migrator.run(:up, MIGRATIONS_ROOT + "/valid", 1) }
|
||||
assert_equal(1, ActiveRecord::Migrator.current_version)
|
||||
end
|
||||
|
||||
def test_migrator_double_down
|
||||
assert_equal(0, ActiveRecord::Migrator.current_version)
|
||||
ActiveRecord::Migrator.run(:up, MIGRATIONS_ROOT + "/valid", 1)
|
||||
ActiveRecord::Migrator.run(:down, MIGRATIONS_ROOT + "/valid", 1)
|
||||
assert_nothing_raised { ActiveRecord::Migrator.run(:down, MIGRATIONS_ROOT + "/valid", 1) }
|
||||
assert_equal(0, ActiveRecord::Migrator.current_version)
|
||||
end
|
||||
|
||||
def test_finds_migrations
|
||||
migrations = ActiveRecord::Migrator.new(:up, MIGRATIONS_ROOT + "/valid").migrations
|
||||
[['1', 'people_have_last_names'],
|
||||
|
@ -914,16 +929,6 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
ActiveRecord::Migrator.rollback(MIGRATIONS_ROOT + "/valid")
|
||||
assert_equal(0, ActiveRecord::Migrator.current_version)
|
||||
end
|
||||
|
||||
def test_migrator_run
|
||||
assert_equal(0, ActiveRecord::Migrator.current_version)
|
||||
ActiveRecord::Migrator.run(:up, MIGRATIONS_ROOT + "/valid", 3)
|
||||
assert_equal(0, ActiveRecord::Migrator.current_version)
|
||||
|
||||
assert_equal(0, ActiveRecord::Migrator.current_version)
|
||||
ActiveRecord::Migrator.run(:down, MIGRATIONS_ROOT + "/valid", 3)
|
||||
assert_equal(0, ActiveRecord::Migrator.current_version)
|
||||
end
|
||||
|
||||
def test_schema_migrations_table_name
|
||||
ActiveRecord::Base.table_name_prefix = "prefix_"
|
||||
|
|
Loading…
Reference in New Issue