Merge pull request #3477 from rud/stable-migrations-version-order-rebased

dump_schema_information: explicitly order inserts into schema_migrations
This commit is contained in:
José Valim
2011-10-31 03:01:02 -07:00
2 changed files with 10 additions and 1 deletions

View File

@@ -405,7 +405,7 @@ module ActiveRecord
def dump_schema_information #:nodoc:
sm_table = ActiveRecord::Migrator.schema_migrations_table_name
migrated = select_values("SELECT version FROM #{sm_table}")
migrated = select_values("SELECT version FROM #{sm_table} ORDER BY version")
migrated.map { |v| "INSERT INTO #{sm_table} (version) VALUES ('#{v}');" }.join("\n\n")
end

View File

@@ -1339,6 +1339,15 @@ if ActiveRecord::Base.connection.supports_migrations?
end
end
def test_dump_schema_information_outputs_lexically_ordered_versions
migration_path = MIGRATIONS_ROOT + '/valid_with_timestamps'
ActiveRecord::Migrator.run(:up, migration_path, 20100301010101)
ActiveRecord::Migrator.run(:up, migration_path, 20100201010101)
schema_info = ActiveRecord::Base.connection.dump_schema_information
assert_match schema_info, /20100201010101.*20100301010101/m
end
def test_finds_pending_migrations
ActiveRecord::Migrator.up(MIGRATIONS_ROOT + "/interleaved/pass_2", 1)
migrations = ActiveRecord::Migrator.new(:up, MIGRATIONS_ROOT + "/interleaved/pass_2").pending_migrations