From 06303ed34eea1f9c3dfa8c7d0ada186b0faf648f Mon Sep 17 00:00:00 2001 From: Jamis Buck Date: Tue, 25 Oct 2005 19:28:53 +0000 Subject: 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 --- activerecord/CHANGELOG | 2 ++ .../connection_adapters/sqlite_adapter.rb | 10 ++++++---- activerecord/test/migration_test.rb | 22 ++++++++++++++++++++++ 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 ] * 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| -- cgit v1.2.3