mirror of https://github.com/rails/rails
Fix issue with remove_index and add unit test [#5645 state:resolved]
This commit is contained in:
parent
55d0d57bfc
commit
37de59eacf
|
@ -363,8 +363,7 @@ module ActiveRecord
|
|||
def remove_index(table_name, options = {})
|
||||
index_name = index_name(table_name, options)
|
||||
unless index_name_exists?(table_name, index_name, true)
|
||||
@logger.warn("Index name '#{index_name}' on table '#{table_name}' does not exist. Skipping.")
|
||||
return
|
||||
raise ArgumentError, "Index name '#{index_name}' on table '#{table_name}' does not exist"
|
||||
end
|
||||
remove_index!(table_name, index_name)
|
||||
end
|
||||
|
|
|
@ -127,16 +127,17 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
def test_add_index_length_limit
|
||||
good_index_name = 'x' * Person.connection.index_name_length
|
||||
too_long_index_name = good_index_name + 'x'
|
||||
assert_nothing_raised { Person.connection.add_index("people", "first_name", :name => too_long_index_name) }
|
||||
assert_raise(ArgumentError) { Person.connection.add_index("people", "first_name", :name => too_long_index_name) }
|
||||
assert !Person.connection.index_name_exists?("people", too_long_index_name, false)
|
||||
assert_nothing_raised { Person.connection.add_index("people", "first_name", :name => good_index_name) }
|
||||
assert Person.connection.index_name_exists?("people", good_index_name, false)
|
||||
Person.connection.remove_index("people", :name => good_index_name)
|
||||
end
|
||||
|
||||
def test_remove_nonexistent_index
|
||||
# we do this by name, so OpenBase is a wash as noted above
|
||||
unless current_adapter?(:OpenBaseAdapter)
|
||||
assert_nothing_raised { Person.connection.remove_index("people", "no_such_index") }
|
||||
assert_raise(ArgumentError) { Person.connection.remove_index("people", "no_such_index") }
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -154,7 +155,7 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
def test_double_add_index
|
||||
unless current_adapter?(:OpenBaseAdapter)
|
||||
Person.connection.add_index('people', [:first_name], :name => 'some_idx')
|
||||
assert_nothing_raised { Person.connection.add_index('people', [:first_name], :name => 'some_idx') }
|
||||
assert_raise(ArgumentError) { Person.connection.add_index('people', [:first_name], :name => 'some_idx') }
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue