class ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition

Active Record PostgreSQL Adapter Table Definition

Attributes

exclusion_constraints[R]
unique_constraints[R]
unlogged[R]

Public Class Methods

new(*, **) click to toggle source
# File lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 248
def initialize(*, **)
  super
  @exclusion_constraints = []
  @unique_constraints = []
  @unlogged = ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.create_unlogged_tables
end

Public Instance Methods

exclusion_constraint(expression, **options) click to toggle source
# File lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 255
def exclusion_constraint(expression, **options)
  exclusion_constraints << new_exclusion_constraint_definition(expression, options)
end
unique_constraint(column_name, **options) click to toggle source
# File lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 259
def unique_constraint(column_name, **options)
  unique_constraints << new_unique_constraint_definition(column_name, options)
end

Private Instance Methods

aliased_types(name, fallback) click to toggle source
# File lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 287
def aliased_types(name, fallback)
  fallback
end
integer_like_primary_key_type(type, options) click to toggle source
# File lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 291
def integer_like_primary_key_type(type, options)
  if type == :bigint || options[:limit] == 8
    :bigserial
  else
    :serial
  end
end
valid_column_definition_options() click to toggle source
# File lib/active_record/connection_adapters/postgresql/schema_definitions.rb, line 283
def valid_column_definition_options
  super + [:array, :using, :cast_as, :as, :type, :enum_type, :stored]
end