123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::ConnectionAdapters::AlterTable

Do not use. This class is for internal use only.
Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Inherits: Object
Defined in: activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb

Constant Summary

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(td) ⇒ AlterTable

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 646

def initialize(td)
  @td = td
  @operations = []
  @deferred_operations = []
end

Instance Attribute Details

#deferred_operations (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 644

attr_reader :operations, :deferred_operations

#empty?Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 715

def empty?
  @operations.empty?
end

#operations (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 644

attr_reader :operations, :deferred_operations

Instance Method Details

#add_check_constraint(expression, options)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 703

def add_check_constraint(expression, options)
  @operations << AddCheckConstraint.new(@td.new_check_constraint_definition(expression, options))
end

#add_column(column_name, type, **options)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 654

def add_column(column_name, type, **options)
  column_name = column_name.to_s
  type = type.to_sym
  @operations << AddColumnDefinition.new(@td.new_column_definition(column_name, type, **options))
end

#add_foreign_key(to_table, options)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 695

def add_foreign_key(to_table, options)
  @operations << AddForeignKey.new(@td.new_foreign_key_definition(to_table, options))
end

#add_timestamps(**options)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 684

def add_timestamps(**options)
  options[:null] = false if options[:null].nil?
  add_column(:created_at, :datetime, **options)
  add_column(:updated_at, :datetime, **options)
end

#change_column_default(column_name, default_or_changes)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 668

def change_column_default(column_name, default_or_changes)
  conn = @td.conn
  column = conn.send(:column_for, name, column_name)
  return unless column
  default = conn.send(:extract_new_default_value, default_or_changes)
  @operations << ChangeColumnDefaultDefinition.new(column, default)
end

#change_column_null(name, null)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 680

def change_column_null(name, null)
  @operations << ChangeColumnNull.new(name, null)
end

#drop_check_constraint(constraint_name)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 707

def drop_check_constraint(constraint_name)
  @operations << DropCheckConstraint.new(constraint_name)
end

#drop_constraint(constraint_name)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 711

def drop_constraint(constraint_name)
  @operations << DropConstraint.new(constraint_name)
end

#drop_foreign_key(name)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 699

def drop_foreign_key(name)
  @operations << DropForeignKey.new(name)
end

#name

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 652

def name; @td.name; end

#remove_column(column_name, _type = nil)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 660

def remove_column(column_name, _type = nil, **)
  @operations << DropColumn.new(column_name)
end

#remove_columns(*column_names)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 664

def remove_columns(*column_names, **)
  column_names.each { |column_name| remove_column(column_name) }
end

#remove_timestamps

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 690

def remove_timestamps(**)
  remove_column(:updated_at)
  remove_column(:created_at)
end

#rename_column(from_name, to_name)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 676

def rename_column(from_name, to_name)
  @operations << RenameColumn.new(from_name, to_name)
end