diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2015-08-30 06:09:51 -0600 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2015-08-30 06:09:51 -0600 |
commit | fa9e4970ea5affe8c5dedf8c9f97e064dc796feb (patch) | |
tree | 41279d095476814adb93d85cba6d77b4e33d5d69 /activerecord | |
parent | 79f44eb6c84fe1d7a7ba51f3f511d2e744788ef8 (diff) | |
parent | 68eb6ca63119c35a6b42c7a90ca3557517b1bcda (diff) | |
download | rails-fa9e4970ea5affe8c5dedf8c9f97e064dc796feb.tar.gz rails-fa9e4970ea5affe8c5dedf8c9f97e064dc796feb.tar.bz2 rails-fa9e4970ea5affe8c5dedf8c9f97e064dc796feb.zip |
Merge pull request #21429 from yui-knk/fix/revert_disable_extension
Make revert of `disable_extension` to work
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/migration/command_recorder.rb | 2 | ||||
-rw-r--r-- | activerecord/test/cases/invertible_migration_test.rb | 33 |
2 files changed, 34 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/migration/command_recorder.rb b/activerecord/lib/active_record/migration/command_recorder.rb index a73ee18170..db7f3f63f6 100644 --- a/activerecord/lib/active_record/migration/command_recorder.rb +++ b/activerecord/lib/active_record/migration/command_recorder.rb @@ -17,7 +17,7 @@ module ActiveRecord ReversibleAndIrreversibleMethods = [:create_table, :create_join_table, :rename_table, :add_column, :remove_column, :rename_index, :rename_column, :add_index, :remove_index, :add_timestamps, :remove_timestamps, :change_column_default, :add_reference, :remove_reference, :transaction, - :drop_join_table, :drop_table, :execute_block, :enable_extension, + :drop_join_table, :drop_table, :execute_block, :enable_extension, :disable_extension, :change_column, :execute, :remove_columns, :change_column_null, :add_foreign_key, :remove_foreign_key ] 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) |