class ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition

Public Instance Methods

column(name, type = nil, options = {}) click to toggle source
Calls superclass method
# File lib/arjdbc/postgresql/base/schema_definitions.rb, line 95
def column(name, type = nil, options = {})
  super
  column = self[name]
  # NOTE: <= 3.1 no #new_column_definition hard-coded ColumnDef.new :
  # column = self[name] || ColumnDefinition.new(@base, name, type)
  # thus we simply do not support array column definitions on <= 3.1
  column.array = options[:array] if column.is_a?(ColumnDefinition)
  self
end
primary_key(name, type = :primary_key, options = {}) click to toggle source
Calls superclass method
# File lib/arjdbc/postgresql/base/schema_definitions.rb, line 88
def primary_key(name, type = :primary_key, options = {})
  return super unless type == :uuid
  options[:default] = options.fetch(:default, 'uuid_generate_v4()')
  options[:primary_key] = true
  column name, type, options
end

Private Instance Methods

create_column_definition(name, type) click to toggle source
# File lib/arjdbc/postgresql/base/schema_definitions.rb, line 109
def create_column_definition(name, type)
  ColumnDefinition.new name, type
end
new_column_definition(base, name, type) click to toggle source
# File lib/arjdbc/postgresql/base/schema_definitions.rb, line 115
def new_column_definition(base, name, type)
  definition = ColumnDefinition.new base, name, type
  @columns << definition
  @columns_hash[name] = definition
  definition
end