instance method alter_table

Ruby on Rails edge

Since v5.1.7 Private — implementation detail, not part of the public API

Available in: v5.1.7 v5.2.8.1 v6.0.6.1 v6.1.7.10 v7.0.10 v7.1.6 v7.2.4 v8.0.5.1 v8.1.4 edge

Signature

alter_table( table_name, foreign_keys = foreign_keys(table_name), check_constraints = check_constraints(table_name) )

No documentation comment.

Parameters

table_name req
foreign_keys opt = foreign_keys(table_name)
check_constraints opt = check_constraints(table_name)
options keyrest
Source
# File activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb, line 690
        def alter_table(
          table_name,
          foreign_keys = foreign_keys(table_name),
          check_constraints = check_constraints(table_name)
        )
          altered_table_name = "a#{table_name}"

          caller = lambda do |definition|
            foreign_keys.each do |fk|
              to_table = strip_table_name_prefix_and_suffix(fk.to_table)
              definition.foreign_key(to_table, **fk.options)
            end

            check_constraints.each do |chk|
              definition.check_constraint(chk.expression, **chk.options)
            end

            yield definition if block_given?
          end

          disable_referential_integrity do
            transaction do
              move_table(table_name, altered_table_name, temporary: true)
              move_table(altered_table_name, table_name, &caller)
            end
          end
        end

Defined in activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb line 690 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::ConnectionAdapters::SQLite3Adapter

Type at least 2 characters to search.

Use the arrow keys to navigate results, Enter to open one, Escape to close.

Keyboard shortcuts

/
Focus search
⌘K / Ctrl-K
Command palette
?
This help
Esc
Close