Class: ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition
- Inherits:
-
TableDefinition
- Object
- TableDefinition
- ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition
- Includes:
- ColumnMethods
- Defined in:
- activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb
Instance Attribute Summary collapse
-
#exclusion_constraints ⇒ Object
readonly
Returns the value of attribute exclusion_constraints.
-
#unique_keys ⇒ Object
readonly
Returns the value of attribute unique_keys.
-
#unlogged ⇒ Object
readonly
Returns the value of attribute unlogged.
Attributes inherited from TableDefinition
#as, #check_constraints, #comment, #foreign_keys, #if_not_exists, #indexes, #name, #options, #temporary
Instance Method Summary collapse
- #exclusion_constraint(expression, **options) ⇒ Object
-
#initialize ⇒ TableDefinition
constructor
A new instance of TableDefinition.
-
#new_column_definition(name, type, **options) ⇒ Object
:nodoc:.
-
#new_exclusion_constraint_definition(expression, options) ⇒ Object
:nodoc:.
-
#new_unique_key_definition(column_name, options) ⇒ Object
:nodoc:.
- #unique_key(column_name, **options) ⇒ Object
Methods included from ColumnMethods
Methods included from ActiveSupport::Concern
#append_features, #class_methods, extended, #included, #prepend_features, #prepended
Methods inherited from TableDefinition
#[], #check_constraint, #column, #columns, #foreign_key, #index, #new_check_constraint_definition, #new_foreign_key_definition, #primary_keys, #references, #remove_column, #set_primary_key, #timestamps
Methods included from ColumnMethods
Constructor Details
#initialize ⇒ TableDefinition
Returns a new instance of TableDefinition.
233 234 235 236 237 238 |
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 233 def initialize(*, **) super @exclusion_constraints = [] @unique_keys = [] @unlogged = ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.create_unlogged_tables end |
Instance Attribute Details
#exclusion_constraints ⇒ Object (readonly)
Returns the value of attribute exclusion_constraints
231 232 233 |
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 231 def exclusion_constraints @exclusion_constraints end |
#unique_keys ⇒ Object (readonly)
Returns the value of attribute unique_keys
231 232 233 |
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 231 def unique_keys @unique_keys end |
#unlogged ⇒ Object (readonly)
Returns the value of attribute unlogged
231 232 233 |
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 231 def unlogged @unlogged end |
Instance Method Details
#exclusion_constraint(expression, **options) ⇒ Object
240 241 242 |
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 240 def exclusion_constraint(expression, **) exclusion_constraints << new_exclusion_constraint_definition(expression, ) end |
#new_column_definition(name, type, **options) ⇒ Object
:nodoc:
258 259 260 261 262 263 264 265 |
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 258 def new_column_definition(name, type, **) # :nodoc: case type when :virtual type = [:type] end super end |
#new_exclusion_constraint_definition(expression, options) ⇒ Object
:nodoc:
248 249 250 251 |
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 248 def new_exclusion_constraint_definition(expression, ) # :nodoc: = @conn.(name, expression, ) ExclusionConstraintDefinition.new(name, expression, ) end |
#new_unique_key_definition(column_name, options) ⇒ Object
:nodoc:
253 254 255 256 |
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 253 def new_unique_key_definition(column_name, ) # :nodoc: = @conn.(name, column_name, ) UniqueKeyDefinition.new(name, column_name, ) end |
#unique_key(column_name, **options) ⇒ Object
244 245 246 |
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 244 def unique_key(column_name, **) unique_keys << new_unique_key_definition(column_name, ) end |