Skip to content
Browse files

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

…ased

dump_schema_information: explicitly order inserts into schema_migrations
  • Loading branch information...
2 parents 818bf1d + ff9c279 commit 2407a7ad8d54ddbcd856d02a11633a3273bac6dd @josevalim josevalim committed
View
2 activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -405,7 +405,7 @@ def structure_dump
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
9 activerecord/test/cases/migration_test.rb
@@ -1339,6 +1339,15 @@ def test_finds_migrations_from_two_directories
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

0 comments on commit 2407a7a

Please sign in to comment.
Something went wrong with that request. Please try again.