Type:
Class

Represents the schema of an SQL table in an abstract way. This class provides methods for manipulating the schema representation.

Inside migration files, the t object in create_table is actually of this type:

1
2
3
4
5
6
7
8
9
10
11
class SomeMigration < ActiveRecord::Migration
  def up
    create_table :foo do |t|
      puts t.class  # => "ActiveRecord::ConnectionAdapters::TableDefinition"
    end
  end
 
  def down
    ...
  end
end

The table definitions The Columns are stored as a ColumnDefinition in the columns attribute.

remove_column
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::ConnectionAdapters/ActiveRecord::ConnectionAdapters::TableDefinition

remove_column(name) Instance Public methods

2025-01-10 15:47:30
column
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::ConnectionAdapters/ActiveRecord::ConnectionAdapters::TableDefinition

column(name, type, options = {}) Instance Public methods Instantiates a new

2025-01-10 15:47:30
columns
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::ConnectionAdapters/ActiveRecord::ConnectionAdapters::TableDefinition

columns() Instance Public methods

2025-01-10 15:47:30
references
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::ConnectionAdapters/ActiveRecord::ConnectionAdapters::TableDefinition

references(*args) Instance Public methods Also aliased as:

2025-01-10 15:47:30
belongs_to
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::ConnectionAdapters/ActiveRecord::ConnectionAdapters::TableDefinition

belongs_to(*args) Instance Public methods Alias for:

2025-01-10 15:47:30
timestamps
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::ConnectionAdapters/ActiveRecord::ConnectionAdapters::TableDefinition

timestamps(*args) Instance Public methods Appends :datetime columns

2025-01-10 15:47:30
primary_key
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::ConnectionAdapters/ActiveRecord::ConnectionAdapters::TableDefinition

primary_key(name, type = :primary_key, options = {}) Instance Public methods Appends

2025-01-10 15:47:30
[]
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::ConnectionAdapters/ActiveRecord::ConnectionAdapters::TableDefinition

[](name) Instance Public methods Returns a ColumnDefinition for the column with

2025-01-10 15:47:30
new
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::ConnectionAdapters/ActiveRecord::ConnectionAdapters::TableDefinition

new(types, name, temporary, options, as = nil) Class Public methods

2025-01-10 15:47:30
index
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::ConnectionAdapters/ActiveRecord::ConnectionAdapters::TableDefinition

index(column_name, options = {}) Instance Public methods Adds index options

2025-01-10 15:47:30