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 PostgreSQL Adapter Alter Table
Constant Summary
-
COMBINABLE_COMMANDS =
# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 383(superclass::COMBINABLE_COMMANDS + %i[change_column change_column_null]).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, options)
- #change_column(column_name, type, **options)
- #change_column_null(column_name, null, default = nil)
- #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 385
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 410
def add_exclusion_constraint(expression, ) @operations << AddExclusionConstraint.new(@td.new_exclusion_constraint_definition(expression, )) end
#add_unique_constraint(column_name, options)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 414
def add_unique_constraint(column_name, ) @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 390
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 396
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 419
def defer_comment(column_name, comment) conn = @td.conn table_name = name @deferred_operations << -> { conn.change_column_comment(table_name, column_name, comment) } end
#validate_constraint(name)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb', line 406
def validate_constraint(name) @operations << ValidateConstraint.new(name) end