aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/invertible_migration_test.rb
diff options
context:
space:
mode:
authoryui-knk <spiketeika@gmail.com>2015-08-30 19:26:39 +0900
committeryui-knk <spiketeika@gmail.com>2015-08-30 19:26:39 +0900
commit68eb6ca63119c35a6b42c7a90ca3557517b1bcda (patch)
tree732d80df04f1169102db2e046afffbc8c7f32821 /activerecord/test/cases/invertible_migration_test.rb
parent49ba2710e9fa01c2bedaf306552fae6f3301a119 (diff)
downloadrails-68eb6ca63119c35a6b42c7a90ca3557517b1bcda.tar.gz
rails-68eb6ca63119c35a6b42c7a90ca3557517b1bcda.tar.bz2
rails-68eb6ca63119c35a6b42c7a90ca3557517b1bcda.zip
Make revert of `disable_extension` to work
This is fix of #11826 which miss to add `disable_extension` to `ReversibleAndIrreversibleMethods`. So `CommandRecorder#method_missing` catches `change_column_default` and @delegate's method is called.
Diffstat (limited to 'activerecord/test/cases/invertible_migration_test.rb')
-rw-r--r--activerecord/test/cases/invertible_migration_test.rb33
1 files changed, 33 insertions, 0 deletions
diff --git a/activerecord/test/cases/invertible_migration_test.rb b/activerecord/test/cases/invertible_migration_test.rb
index 1664c9e25d..84b0ff8fcb 100644
--- a/activerecord/test/cases/invertible_migration_test.rb
+++ b/activerecord/test/cases/invertible_migration_test.rb
@@ -93,6 +93,18 @@ module ActiveRecord
end
end
+ class DisableExtension1 < SilentMigration
+ def change
+ enable_extension "hstore"
+ end
+ end
+
+ class DisableExtension2 < SilentMigration
+ def change
+ disable_extension "hstore"
+ end
+ end
+
class LegacyMigration < ActiveRecord::Migration
def self.up
create_table("horses") do |t|
@@ -255,6 +267,27 @@ module ActiveRecord
assert_equal "Sekitoba", Horse.new.name
end
+ if current_adapter?(:PostgreSQLAdapter)
+ def test_migrate_enable_and_disable_extension
+ migration1 = InvertibleMigration.new
+ migration2 = DisableExtension1.new
+ migration3 = DisableExtension2.new
+
+ migration1.migrate(:up)
+ migration2.migrate(:up)
+ assert_equal true, Horse.connection.extension_enabled?('hstore')
+
+ migration3.migrate(:up)
+ assert_equal false, Horse.connection.extension_enabled?('hstore')
+
+ migration3.migrate(:down)
+ assert_equal true, Horse.connection.extension_enabled?('hstore')
+
+ migration2.migrate(:down)
+ assert_equal false, Horse.connection.extension_enabled?('hstore')
+ end
+ end
+
def test_revert_order
block = Proc.new{|t| t.string :name }
recorder = ActiveRecord::Migration::CommandRecorder.new(ActiveRecord::Base.connection)