mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #21429 from yui-knk/fix/revert_disable_extension
Make revert of `disable_extension` to work
This commit is contained in:
commit
fa9e4970ea
2 changed files with 34 additions and 1 deletions
|
@ -17,7 +17,7 @@ module ActiveRecord
|
||||||
ReversibleAndIrreversibleMethods = [:create_table, :create_join_table, :rename_table, :add_column, :remove_column,
|
ReversibleAndIrreversibleMethods = [:create_table, :create_join_table, :rename_table, :add_column, :remove_column,
|
||||||
:rename_index, :rename_column, :add_index, :remove_index, :add_timestamps, :remove_timestamps,
|
:rename_index, :rename_column, :add_index, :remove_index, :add_timestamps, :remove_timestamps,
|
||||||
:change_column_default, :add_reference, :remove_reference, :transaction,
|
: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,
|
:change_column, :execute, :remove_columns, :change_column_null,
|
||||||
:add_foreign_key, :remove_foreign_key
|
:add_foreign_key, :remove_foreign_key
|
||||||
]
|
]
|
||||||
|
|
|
@ -93,6 +93,18 @@ module ActiveRecord
|
||||||
end
|
end
|
||||||
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
|
class LegacyMigration < ActiveRecord::Migration
|
||||||
def self.up
|
def self.up
|
||||||
create_table("horses") do |t|
|
create_table("horses") do |t|
|
||||||
|
@ -255,6 +267,27 @@ module ActiveRecord
|
||||||
assert_equal "Sekitoba", Horse.new.name
|
assert_equal "Sekitoba", Horse.new.name
|
||||||
end
|
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
|
def test_revert_order
|
||||||
block = Proc.new{|t| t.string :name }
|
block = Proc.new{|t| t.string :name }
|
||||||
recorder = ActiveRecord::Migration::CommandRecorder.new(ActiveRecord::Base.connection)
|
recorder = ActiveRecord::Migration::CommandRecorder.new(ActiveRecord::Base.connection)
|
||||||
|
|
Loading…
Reference in a new issue