method
change_column_default_for_alter
rails latest stable - Class:
ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements
change_column_default_for_alter(table_name, column_name, default_or_changes)public
No documentation available.
# File activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb, line 738
def change_column_default_for_alter(table_name, column_name, default_or_changes)
column = column_for(table_name, column_name)
return unless column
default = extract_new_default_value(default_or_changes)
alter_column_query = "ALTER COLUMN #{quote_column_name(column_name)} %s"
if default.nil?
# <tt>DEFAULT NULL</tt> results in the same behavior as <tt>DROP DEFAULT</tt>. However, PostgreSQL will
# cast the default to the columns type, which leaves us with a default like "default NULL::character varying".
alter_column_query % "DROP DEFAULT"
else
alter_column_query % "SET DEFAULT #{quote_default_expression(default, column)}"
end
end