Flowdock
method

change_column_default_for_alter

Importance_0
v7.0.0 - Show latest stable - 0 notes - Class: SchemaStatements
change_column_default_for_alter(table_name, column_name, default_or_changes) public

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# 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
Register or log in to add new notes.