aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJamis Buck <jamis@37signals.com>2005-10-25 19:28:53 +0000
committerJamis Buck <jamis@37signals.com>2005-10-25 19:28:53 +0000
commit06303ed34eea1f9c3dfa8c7d0ada186b0faf648f (patch)
treedbc5e6a4916e018d118e9607b0b6b71a63d10e4c
parent17d3fd316551660ad19251b969540dc304a9a48c (diff)
downloadrails-06303ed34eea1f9c3dfa8c7d0ada186b0faf648f.tar.gz
rails-06303ed34eea1f9c3dfa8c7d0ada186b0faf648f.tar.bz2
rails-06303ed34eea1f9c3dfa8c7d0ada186b0faf648f.zip
Allow symbols to rename columns when using SQLite adapter. #2531 [kevin.clark@gmail.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2731 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r--activerecord/CHANGELOG2
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb10
-rw-r--r--activerecord/test/migration_test.rb22
3 files changed, 30 insertions, 4 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG
index d69de4e618..585f9d602e 100644
--- a/activerecord/CHANGELOG
+++ b/activerecord/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Allow symbols to rename columns when using SQLite adapter. #2531 [kevin.clark@gmail.com]
+
* Map Active Record time to SQL TIME. #2575, #2576 [Robby Russell <robby@planetargon.com>]
* Clarify semantics of ActiveRecord::Base#respond_to? #2560 [skaes@web.de]
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
index c356f607c9..f0c2cc06d4 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
@@ -280,10 +280,12 @@ module ActiveRecord
def copy_table(from, to, options = {}) #:nodoc:
create_table(to, options) do |@definition|
columns(from).each do |column|
- column_name = options[:rename][column.name] if
- options[:rename][column.name] if options[:rename]
-
- @definition.column(column_name || column.name, column.type,
+ column_name = options[:rename] ?
+ (options[:rename][column.name] ||
+ options[:rename][column.name.to_sym] ||
+ column.name) : column.name
+
+ @definition.column(column_name, column.type,
:limit => column.limit, :default => column.default,
:null => column.null)
end
diff --git a/activerecord/test/migration_test.rb b/activerecord/test/migration_test.rb
index 702fef7436..4d10767991 100644
--- a/activerecord/test/migration_test.rb
+++ b/activerecord/test/migration_test.rb
@@ -180,6 +180,28 @@ if ActiveRecord::Base.connection.supports_migrations?
end
+ def test_rename_column_using_symbol_arguments
+ begin
+ Person.connection.rename_column :people, :first_name, :nick_name
+ Person.reset_column_information
+ assert Person.column_names.include?("nick_name")
+ ensure
+ Person.connection.remove_column("people","nick_name")
+ Person.connection.add_column("people","first_name", :string)
+ end
+ end
+
+ def test_rename_column
+ begin
+ Person.connection.rename_column "people", "first_name", "nick_name"
+ Person.reset_column_information
+ assert Person.column_names.include?("nick_name")
+ ensure
+ Person.connection.remove_column("people","nick_name")
+ Person.connection.add_column("people","first_name", :string)
+ end
+ end
+
def test_rename_table
begin
ActiveRecord::Base.connection.create_table :octopuses do |t|