diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 104e8e3e40da2..126464f81f33b 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 dcbc3466b2209..3aa460491216e 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 @@ def rename_table(table_name, new_name) 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