diff options
author | José Valim <jose.valim@gmail.com> | 2011-10-31 03:01:02 -0700 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-10-31 03:01:02 -0700 |
commit | 2407a7ad8d54ddbcd856d02a11633a3273bac6dd (patch) | |
tree | ef5031cbbcfee085ddf737003bcc56ee066f1e67 | |
parent | 818bf1da0e86cf50b5a33ec493959374ccc1cb7d (diff) | |
parent | ff9c2799c1a065fb132df64da6d19683c647b5b4 (diff) | |
download | rails-2407a7ad8d54ddbcd856d02a11633a3273bac6dd.tar.gz rails-2407a7ad8d54ddbcd856d02a11633a3273bac6dd.tar.bz2 rails-2407a7ad8d54ddbcd856d02a11633a3273bac6dd.zip |
Merge pull request #3477 from rud/stable-migrations-version-order-rebased
dump_schema_information: explicitly order inserts into schema_migrations
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb | 2 | ||||
-rw-r--r-- | activerecord/test/cases/migration_test.rb | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb index b4a9e29ef1..910ef3efce 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb @@ -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 diff --git a/activerecord/test/cases/migration_test.rb b/activerecord/test/cases/migration_test.rb index 49944eced9..4fdb7d2f25 100644 --- a/activerecord/test/cases/migration_test.rb +++ b/activerecord/test/cases/migration_test.rb @@ -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 |