Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #8504 from senny/backport_8492

Backport of #8500, recognize migrations, in folders containing numbers and 'rb'.
  • Loading branch information...
commit 3bf4ddfefbd26a558bda00fbea537db712f9d865 2 parents 6fbee4f + d68e299
@carlosantoniodasilva carlosantoniodasilva authored
View
6 activerecord/CHANGELOG.md
@@ -1,5 +1,11 @@
## Rails 3.2.10 (unreleased)
+* Recognize migrations placed in directories containing numbers and 'rb'.
+ Fix #8492
+ Backport of #8500
+
+ *Yves Senn*
+
* Add `ActiveRecord::Base.cache_timestamp_format` class attribute to control
the format of the timestamp value in the cache key.
This allows users to improve the precision of the cache key.
View
2  activerecord/lib/active_record/migration.rb
@@ -627,7 +627,7 @@ def migrations(paths, *args)
seen = Hash.new false
migrations = files.map do |file|
- version, name, scope = file.scan(/([0-9]+)_([_a-z0-9]*)\.?([_a-z0-9]*)?.rb/).first
+ version, name, scope = file.scan(/([0-9]+)_([_a-z0-9]*)\.?([_a-z0-9]*)?\.rb\z/).first
raise IllegalMigrationNameError.new(file) unless version
version = version.to_i
View
6 activerecord/test/cases/migration_test.rb
@@ -1430,6 +1430,12 @@ def test_finds_migrations_from_two_directories
end
end
+ def test_finds_migrations_in_numbered_directory
+ migrations = ActiveRecord::Migrator.migrations [MIGRATIONS_ROOT + '/10_urban']
+ assert_equal 9, migrations[0].version
+ assert_equal 'AddExpressions', migrations[0].name
+ end
+
def test_dump_schema_information_outputs_lexically_ordered_versions
migration_path = MIGRATIONS_ROOT + '/valid_with_timestamps'
ActiveRecord::Migrator.run(:up, migration_path, 20100301010101)
View
11 activerecord/test/migrations/10_urban/9_add_expressions.rb
@@ -0,0 +1,11 @@
+class AddExpressions < ActiveRecord::Migration
+ def self.up
+ create_table("expressions") do |t|
+ t.column :expression, :string
+ end
+ end
+
+ def self.down
+ drop_table "expressions"
+ end
+end
Please sign in to comment.
Something went wrong with that request. Please try again.