This project is archived and is in readonly mode.
Migration now points to db/migrate//
-
Aaron Patterson
- Assigned user set to Aaron Patterson
Are you able to reproduce this with a new application?
-
Aaron Patterson
Also, could I possibly get a stack trace from when it had "require"?
-
Evgeniy Dolzhenko
The problem was indeed introduced by the aforementioned commit, but the cause is that Kernel#require doesn't load relative paths on Ruby 1.9.2 Ruby, while Kernel#load does.
There is even ticket for that issue: http://redmine.ruby-lang.org/issues/show/2710
Backtrace:
> rake --trace db:migrate (in /mnt/hgfs/tourism_studies) Invoke db:migrate (first_time) Invoke environment (first_time) Execute environment Execute db:migrate rake aborted! no such file to load -- db/migrate//20100323145036_test_migration.rb /mnt/hgfs/tourism_studies/vendor/rails/activesupport/lib/active_support/dependencies.rb:209:inrequire' /mnt/hgfs/tourism_studies/vendor/rails/activesupport/lib/active_support/dependencies.rb:209:inblock in require' /mnt/hgfs/tourism_studies/vendor/rails/activesupport/lib/active_support/dependencies.rb:195:inblock in load_dependency' /mnt/hgfs/tourism_studies/vendor/rails/activesupport/lib/active_support/dependencies.rb:523:innew_constants_in' /mnt/hgfs/tourism_studies/vendor/rails/activesupport/lib/active_support/dependencies.rb:195:inload_dependency' /mnt/hgfs/tourism_studies/vendor/rails/activesupport/lib/active_support/dependencies.rb:209:inrequire' /mnt/hgfs/tourism_studies/vendor/rails/activerecord/lib/active_record/migration.rb:377:inload_migration' /mnt/hgfs/tourism_studies/vendor/rails/activerecord/lib/active_record/migration.rb:373:inmigration' /mnt/hgfs/tourism_studies/vendor/rails/activerecord/lib/active_record/migration.rb:373:inmigrate' /mnt/hgfs/tourism_studies/vendor/rails/activerecord/lib/active_record/migration.rb:506:inblock (2 levels) in migrate' /mnt/hgfs/tourism_studies/vendor/rails/activerecord/lib/active_record/migration.rb:582:incall' /mnt/hgfs/tourism_studies/vendor/rails/activerecord/lib/active_record/migration.rb:582:inddl_transaction' /mnt/hgfs/tourism_studies/vendor/rails/activerecord/lib/active_record/migration.rb:505:inblock in migrate' /mnt/hgfs/tourism_studies/vendor/rails/activerecord/lib/active_record/migration.rb:492:ineach' /mnt/hgfs/tourism_studies/vendor/rails/activerecord/lib/active_record/migration.rb:492:inmigrate' /mnt/hgfs/tourism_studies/vendor/rails/activerecord/lib/active_record/migration.rb:402:inup' /mnt/hgfs/tourism_studies/vendor/rails/activerecord/lib/active_record/migration.rb:387:inmigrate'</code> </pre>
And my idea of fix:diff --git a/activerecord/lib/active_record/migration.rb b/activerecord/lib/active_record/migration.rb index 23e4505..4e7c24a 100644 --- a/activerecord/lib/active_record/migration.rb +++ b/activerecord/lib/active_record/migration.rb @@ -374,7 +374,7 @@ module ActiveRecord end def load_migration - require(filename) + require(Pathname(filename).relative? ? Rails.root + filename : filename) name.constantize end -
Aaron Patterson
- Tag changed from bug, migration, rails3 to bug, migration, patch, rails3
-
Repository
- State changed from new to resolved
(from [ed21f0c50270139ddb6993acfdaea4586ffd09a3]) expand migration paths before requiring them. [#4240 Migration now points to db/migrate// state:resolved]
Signed-off-by: wycats wycats@gmail.com
http://github.com/rails/rails/commit/ed21f0c50270139ddb6993acfdaea4...
