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
-
COMBINABLE_COMMANDS =
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 407(superclass::COMBINABLE_COMMANDS + %i[ change_column change_column_null add_exclusion_constraint remove_exclusion_constraint add_unique_constraint remove_unique_constraint ]).freeze
::ActiveRecord::ConnectionAdapters::AlterTable - Inherited
Class Method Summary
::ActiveRecord::ConnectionAdapters::AlterTable - Inherited
Instance Attribute Summary
::ActiveRecord::ConnectionAdapters::AlterTable - Inherited
Instance Method Summary
- #add_column(column_name, type, **options)
- #add_exclusion_constraint(expression, **options)
- #add_unique_constraint(column_name = nil, **options)
- #change_column(column_name, type, **options)
- #change_column_null(column_name, null, default = nil)
- #remove_exclusion_constraint(expression = nil, **options)
- #remove_unique_constraint(column_name = nil, **options)
- #validate_constraint(name)
- #defer_comment(column_name, comment) private
::ActiveRecord::ConnectionAdapters::AlterTable - Inherited
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, **) super defer_comment(column_name, [:comment]) if .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, **) @operations << AddExclusionConstraint.new(@td.new_exclusion_constraint_definition(expression, )) 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, **) @operations << AddUniqueConstraint.new(@td.new_unique_constraint_definition(column_name, )) 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, **) cd = @td.new_column_definition(column_name, type, **) @operations << ChangeColumnDefinition.new(cd, column_name) defer_comment(column_name, [:comment]) if .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, **) drop_constraint(@td.conn.send(:exclusion_constraint_for!, name, expression: expression, **).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, **) drop_constraint(@td.conn.send(:unique_constraint_for!, name, column: column_name, **).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