Module: SchemaPlus::Core::ActiveRecord::ConnectionAdapters::AbstractAdapter

Defined in:
lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb

Defined Under Namespace

Modules: SchemaCreation

Instance Method Summary collapse

Instance Method Details

#add_column(table_name, name, type, options = {}) ⇒ Object



7
8
9
10
11
# File 'lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb', line 7

def add_column(table_name, name, type, options = {})
  SchemaMonkey::Middleware::Migration::Column.start(caller: self, operation: :add, table_name: table_name, column_name: name, type: type, options: options.deep_dup) do |env|
    super env.table_name, env.column_name, env.type, env.options
  end
end

#add_index_options(table_name, column_names, options = {}) ⇒ Object



19
20
21
22
23
# File 'lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb', line 19

def add_index_options(table_name, column_names, options={})
  SchemaMonkey::Middleware::Sql::IndexComponents.start(connection: self, table_name: table_name, column_names: Array.wrap(column_names), options: options.deep_dup, sql: SqlStruct::IndexComponents.new) { |env|
    env.sql.name, env.sql.type, env.sql.columns, env.sql.options, env.sql.algorithm, env.sql.using = super env.table_name, env.column_names, env.options
  }.sql.to_hash.values
end

#add_reference(table_name, name, options = {}) ⇒ Object



13
14
15
16
17
# File 'lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb', line 13

def add_reference(table_name, name, options = {})
  SchemaMonkey::Middleware::Migration::Column.start(caller: self, operation: :add, table_name: table_name, column_name: "#{name}_id", type: :reference, options: options.deep_dup) do |env|
    super env.table_name, env.column_name.sub(/_id$/, ''), env.options
  end
end