instance method build_table_options

Ruby on Rails edge

Since edge Private — implementation detail, not part of the public API

Signature

build_table_options(table_name, create_table_info)

No documentation comment.

Parameters

table_name req
create_table_info req
Source
# File activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb, line 730
        def build_table_options(table_name, create_table_info)
          # strip create_definitions and partition_options
          # Be aware that `create_table_info` might not include any table options due to `NO_TABLE_OPTIONS` sql mode.
          raw_table_options = create_table_info.sub(/\A.*\n\) ?/m, "").sub(/\n\/\*!.*\*\/\n\z/m, "").strip

          return if raw_table_options.empty?

          table_options = {}

          if / DEFAULT CHARSET=(?<charset>\w+)(?: COLLATE=(?<collation>\w+))?/ =~ raw_table_options
            raw_table_options = $` + $' # before part + after part
            table_options[:charset] = charset
            table_options[:collation] = collation if collation
          end

          # strip AUTO_INCREMENT
          raw_table_options.sub!(/(ENGINE=\w+)(?: AUTO_INCREMENT=\d+)/, '\1')

          # strip COMMENT
          if raw_table_options.sub!(/ COMMENT='.+'/, "")
            table_options[:comment] = table_comment(table_name)
          end

          table_options[:options] = raw_table_options unless raw_table_options == "ENGINE=InnoDB"
          table_options
        end

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

Defined in ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter

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