Browse files

recognize migrations, in folders containing numbers and 'rb'.

Closes #8492
  • Loading branch information...
1 parent d4333ed commit 349d4606004d20cb0ace1980bcb6d0af13f6b504 @senny senny committed with senny Dec 12, 2012
5 activerecord/CHANGELOG.md
@@ -1,5 +1,10 @@
## Rails 4.0.0 (unreleased) ##
+* Recognize migrations placed in directories containing numbers and 'rb'.
+ Fix #8492
+
+ *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
@@ -665,7 +665,7 @@ def migrations(paths)
files = Dir[*paths.map { |p| "#{p}/**/[0-9]*_*.rb" }]
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/migrator_test.rb
@@ -84,6 +84,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_deprecated_constructor
assert_deprecated do
ActiveRecord::Migrator.new(:up, MIGRATIONS_ROOT + "/valid")
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

0 comments on commit 349d460

Please sign in to comment.