Merge pull request #21429 from yui-knk/fix/revert_disable_extension

Make revert of `disable_extension` to work
This commit is contained in:
Sean Griffin 2015-08-30 06:09:51 -06:00
commit fa9e4970ea
2 changed files with 34 additions and 1 deletions

View File

@ -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
]

View File

@ -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)