123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::ConnectionAdapters::PostgreSQL::AlterTable

Do not use. This class is for internal use only.
Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: ActiveRecord::ConnectionAdapters::AlterTable
Defined in: activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb

Overview

Active Record ::ActiveRecord::ConnectionAdapters::PostgreSQL Adapter Alter Table

Constant Summary

::ActiveRecord::ConnectionAdapters::AlterTable - Inherited

COMBINABLE_COMMANDS

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

This class inherits a constructor from ActiveRecord::ConnectionAdapters::AlterTable

Instance Method Details

#add_column(column_name, type, **options)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 416

def add_column(column_name, type, **options)
  super
  defer_comment(column_name, options[:comment]) if options.key?(:comment)
end

#add_exclusion_constraint(expression, **options)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 441

def add_exclusion_constraint(expression, **options)
  @operations << AddExclusionConstraint.new(@td.new_exclusion_constraint_definition(expression, options))
end

#add_unique_constraint(column_name = nil, **options)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 449

def add_unique_constraint(column_name = nil, **options)
  @operations << AddUniqueConstraint.new(@td.new_unique_constraint_definition(column_name, options))
end

#change_column(column_name, type, **options)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 421

def change_column(column_name, type, **options)
  cd = @td.new_column_definition(column_name, type, **options)
  @operations << ChangeColumnDefinition.new(cd, column_name)
  defer_comment(column_name, options[:comment]) if options.key?(:comment)
end

#change_column_null(column_name, null, default = nil)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 427

def change_column_null(column_name, null, default = nil)
  if default.nil?
    super(column_name, null)
  else
    conn = @td.conn
    table_name = name
    @deferred_operations << -> { conn.change_column_null(table_name, column_name, null, default) }
  end
end

#defer_comment(column_name, comment) (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 458

def defer_comment(column_name, comment)
  conn = @td.conn
  table_name = name
  @deferred_operations << -> { conn.change_column_comment(table_name, column_name, comment) }
end

#remove_exclusion_constraint(expression = nil, **options)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 445

def remove_exclusion_constraint(expression = nil, **options)
  drop_constraint(@td.conn.send(:exclusion_constraint_for!, name, expression: expression, **options).name)
end

#remove_unique_constraint(column_name = nil, **options)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 453

def remove_unique_constraint(column_name = nil, **options)
  drop_constraint(@td.conn.send(:unique_constraint_for!, name, column: column_name, **options).name)
end

#validate_constraint(name)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 437

def validate_constraint(name)
  @operations << ValidateConstraint.new(name)
end