From a9771ddba5fa75632b264af80f95ef463a882548 Mon Sep 17 00:00:00 2001 From: Cody Cutrer Date: Mon, 25 Nov 2013 13:15:15 -0700 Subject: implement rename_index natively for MySQL > 5.7 --- activerecord/CHANGELOG.md | 4 ++++ .../active_record/connection_adapters/abstract_mysql_adapter.rb | 8 ++++++++ 2 files changed, 12 insertions(+) (limited to 'activerecord') diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 104e8e3e40..126464f81f 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,3 +1,7 @@ +* Implement rename_index natively for MySQL > 5.7. + + *Cody Cutrer* + * Fix bug when validating the uniqueness of an aliased attribute. Fixes #12402. diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index dcbc3466b2..3aa4604912 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -487,6 +487,14 @@ module ActiveRecord rename_table_indexes(table_name, new_name) end + def rename_index(table_name, old_name, new_name) + if version[0] >= 5 && version[1] >= 7 + execute "ALTER TABLE #{quote_table_name(table_name)} RENAME INDEX #{quote_table_name(old_name)} TO #{quote_table_name(new_name)}" + else + super + end + end + def change_column_default(table_name, column_name, default) column = column_for(table_name, column_name) change_column table_name, column_name, column.sql_type, :default => default -- cgit v1.2.3