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

Changeset 7987

Show
Ignore:
Timestamp:
10/22/07 02:20:21 (1 year ago)
Author:
lawrence
Message:

SQLServer: fix for change_column_default, which lost NOT NULL setting. References #8103

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • adapters/sqlserver/lib/active_record/connection_adapters/sqlserver_adapter.rb

    r7985 r7987  
    472472        execute "EXEC sp_rename '#{name}', '#{new_name}'" 
    473473      end 
    474        
    475       # Adds a new column to the named table. 
    476       # See TableDefinition#column for details of the options you can use. 
     474 
    477475      def add_column(table_name, column_name, type, options = {}) 
    478         add_column_sql = "ALTER TABLE #{table_name} ADD #{quote_column_name(column_name)} #{type_to_sql(type, options[:limit], options[:precision], options[:scale])}" 
     476        add_column_sql = "ALTER TABLE #{table_name} ADD #{quote_column_name(column_name)} #{type_to_sql(type, options[:limit], options[:precision], options[:scale])}"       
    479477        add_column_options!(add_column_sql, options) 
    480478        # TODO: Add support to mimic date columns, using constraints to mark them as such in the database 
     
    488486       
    489487      def change_column(table_name, column_name, type, options = {}) #:nodoc: 
    490         sql_commands = ["ALTER TABLE #{table_name} ALTER COLUMN #{quote_column_name(column_name)} #{type_to_sql(type, options[:limit], options[:precision], options[:scale])}"] 
     488        sql = "ALTER TABLE #{table_name} ALTER COLUMN #{quote_column_name(column_name)} #{type_to_sql(type, options[:limit], options[:precision], options[:scale])}" 
     489        sql << " NOT NULL" if options[:null] == false 
     490        sql_commands = [sql]         
    491491        if options_include_default?(options) 
    492492          remove_default_constraint(table_name, column_name)