Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #2531: sqlight_rename_column.diff

File sqlight_rename_column.diff, 2.1 kB (added by kevinclark, 3 years ago)

patch to fix copy_table in sqlite adapter

  • test/migration_test.rb

    old new  
    180180       
    181181    end 
    182182     
     183    def test_rename_column_using_symbol_arguments 
     184      begin 
     185        Person.connection.rename_column :people, :first_name, :nick_name 
     186        Person.reset_column_information 
     187        assert Person.column_names.include?("nick_name") 
     188      ensure 
     189        Person.connection.remove_column("people","nick_name") 
     190        Person.connection.add_column("people","first_name", :string) 
     191      end 
     192    end 
     193     
     194    def test_rename_column 
     195      begin 
     196        Person.connection.rename_column "people", "first_name", "nick_name" 
     197        Person.reset_column_information 
     198        assert Person.column_names.include?("nick_name") 
     199      ensure 
     200        Person.connection.remove_column("people","nick_name") 
     201        Person.connection.add_column("people","first_name", :string) 
     202      end 
     203    end 
     204     
    183205    def test_rename_table 
    184206      begin 
    185207        ActiveRecord::Base.connection.create_table :octopuses do |t| 
  • lib/active_record/connection_adapters/sqlite_adapter.rb

    old new  
    280280        def copy_table(from, to, options = {}) #:nodoc: 
    281281          create_table(to, options) do |@definition| 
    282282            columns(from).each do |column| 
    283               column_name = options[:rename][column.name] if  
    284                 options[:rename][column.name] if options[:rename] 
    285                
     283              if options[:rename] 
     284                column_name = options[:rename][column.name] if options[:rename][column.name] 
     285                column_name = options[:rename][column.name.to_sym] if options[:rename][column.name.to_sym] 
     286              end 
    286287              @definition.column(column_name || column.name, column.type,  
    287288                :limit => column.limit, :default => column.default, 
    288289                :null => column.null)