Method: ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#change_column_null
- Defined in:
- activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
#change_column_null(table_name, column_name, null, default = nil) ⇒ Object
:nodoc:
453 454 455 456 457 458 459 460 461 462 |
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb', line 453 def change_column_null(table_name, column_name, null, default = nil) # :nodoc: validate_change_column_null_argument!(null) clear_cache! unless null || default.nil? column = column_for(table_name, column_name) execute "UPDATE #{quote_table_name(table_name)} SET #{quote_column_name(column_name)}=#{quote_default_expression(default, column)} WHERE #{quote_column_name(column_name)} IS NULL" if column end execute "ALTER TABLE #{quote_table_name(table_name)} ALTER COLUMN #{quote_column_name(column_name)} #{null ? 'DROP' : 'SET'} NOT NULL" end |