aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorChristopher Meiklejohn <christopher.meiklejohn@gmail.com>2011-07-29 21:26:21 -0400
committerAaron Patterson <aaron.patterson@gmail.com>2011-08-02 18:55:59 -0700
commit74d7bfb200e4590e244558554e147a31d30990df (patch)
tree1402f8eebcae92c9566607a28ce8814f1b7a7651 /activerecord
parent3a4dc9d34c1cde8bf34dfa4b4600fb8bcef9eb45 (diff)
downloadrails-74d7bfb200e4590e244558554e147a31d30990df.tar.gz
rails-74d7bfb200e4590e244558554e147a31d30990df.tar.bz2
rails-74d7bfb200e4590e244558554e147a31d30990df.zip
Support backwards compatible interface for migration down/up with rails 3.0.x.
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/migration.rb1
-rw-r--r--activerecord/test/cases/invertible_migration_test.rb24
2 files changed, 25 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/migration.rb b/activerecord/lib/active_record/migration.rb
index 507f345ef5..9307d7ef24 100644
--- a/activerecord/lib/active_record/migration.rb
+++ b/activerecord/lib/active_record/migration.rb
@@ -329,6 +329,7 @@ module ActiveRecord
end
def self.method_missing(name, *args, &block) # :nodoc:
+ self.delegate = self.new
(delegate || superclass.delegate).send(name, *args, &block)
end
diff --git a/activerecord/test/cases/invertible_migration_test.rb b/activerecord/test/cases/invertible_migration_test.rb
index afec64750e..acba4a134e 100644
--- a/activerecord/test/cases/invertible_migration_test.rb
+++ b/activerecord/test/cases/invertible_migration_test.rb
@@ -27,6 +27,19 @@ module ActiveRecord
end
end
+ class LegacyMigration < ActiveRecord::Migration
+ def self.up
+ create_table("horses") do |t|
+ t.column :content, :text
+ t.column :remind_at, :datetime
+ end
+ end
+
+ def self.down
+ drop_table("horses")
+ end
+ end
+
def teardown
if ActiveRecord::Base.connection.table_exists?("horses")
ActiveRecord::Base.connection.drop_table("horses")
@@ -53,5 +66,16 @@ module ActiveRecord
migration.migrate :down
assert !migration.connection.table_exists?("horses")
end
+
+ def test_legacy_up
+ LegacyMigration.migrate :up
+ assert ActiveRecord::Base.connection.table_exists?("horses"), "horses should exist"
+ end
+
+ def test_legacy_down
+ LegacyMigration.migrate :up
+ LegacyMigration.migrate :down
+ assert !ActiveRecord::Base.connection.table_exists?("horses"), "horses should not exist"
+ end
end
end