diff options
author | yui-knk <spiketeika@gmail.com> | 2015-08-30 19:26:39 +0900 |
---|---|---|
committer | yui-knk <spiketeika@gmail.com> | 2015-08-30 19:26:39 +0900 |
commit | 68eb6ca63119c35a6b42c7a90ca3557517b1bcda (patch) | |
tree | 732d80df04f1169102db2e046afffbc8c7f32821 /activerecord/test/cases | |
parent | 49ba2710e9fa01c2bedaf306552fae6f3301a119 (diff) | |
download | rails-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')
-rw-r--r-- | activerecord/test/cases/invertible_migration_test.rb | 33 |
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) |