aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2012-12-28 22:56:44 +0100
committerYves Senn <yves.senn@gmail.com>2013-02-20 18:19:25 +0100
commit39eef1a565ef02e4dabc0811ef1bf4547ff9a60e (patch)
treecc528b7c8edb014e65bc9c4e1c5e8dec4d89993d /activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
parent20ed3e0f715741ca53c992bcdf87b5039e6692af (diff)
downloadrails-39eef1a565ef02e4dabc0811ef1bf4547ff9a60e.tar.gz
rails-39eef1a565ef02e4dabc0811ef1bf4547ff9a60e.tar.bz2
rails-39eef1a565ef02e4dabc0811ef1bf4547ff9a60e.zip
also rename indexes when a table or column is renamed
When a table or a column is renamed related indexes kept their name. This will lead to confusing names. This patch renames related indexes when a column or a table is renamed. Only indexes with names generated by rails will be renamed. Indexes with custom names will not be renamed.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
index 105ba69028..6ede5f3390 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
@@ -435,8 +435,9 @@ module ActiveRecord
#
# Example:
# rename_table('octopuses', 'octopi')
- def rename_table(name, new_name)
- exec_query "ALTER TABLE #{quote_table_name(name)} RENAME TO #{quote_table_name(new_name)}"
+ def rename_table(table_name, new_name)
+ exec_query "ALTER TABLE #{quote_table_name(table_name)} RENAME TO #{quote_table_name(new_name)}"
+ rename_table_indexes(table_name, new_name)
end
# See: http://www.sqlite.org/lang_altertable.html
@@ -495,6 +496,7 @@ module ActiveRecord
raise ActiveRecord::ActiveRecordError, "Missing column #{table_name}.#{column_name}"
end
alter_table(table_name, :rename => {column_name.to_s => new_column_name.to_s})
+ rename_column_indexes(table_name, column_name, new_column_name)
end
protected