Module: SchemaPlus::Core::ActiveRecord::ConnectionAdapters::AbstractAdapter
- Defined in:
- lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb,
lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb,
lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb
Defined Under Namespace
Modules: SchemaCreation
Instance Method Summary collapse
- #add_column(table_name, name, type, **options) ⇒ Object
- #add_index_options(table_name, column_names, **options) ⇒ Object
- #add_reference(table_name, name, **options) ⇒ Object
- #create_table(table_name, **options, &block) ⇒ Object
- #drop_table(table_name, **options) ⇒ Object
-
#quoted_columns_for_index(column_names, options) ⇒ Object
replaced version to handle array of columns with expressions.
Instance Method Details
#add_column(table_name, name, type, **options) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb', line 8 def add_column(table_name, name, type, **) = .deep_dup SchemaMonkey::Middleware::Migration::Column.start(caller: self, operation: :add, table_name: table_name, column_name: name, type: type, implements_reference: .delete(:_implements_reference), options: ) do |env| super env.table_name, env.column_name, env.type, **env. end end |
#add_index_options(table_name, column_names, **options) ⇒ Object
15 16 17 18 19 |
# File 'lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb', line 15 def (table_name, column_names, **) SchemaMonkey::Middleware::Sql::IndexComponents.start(connection: self, table_name: table_name, column_names: Array.wrap(column_names), options: .deep_dup, sql: SqlStruct::IndexComponents.new) { |env| env.sql.name, env.sql.type, env.sql.columns, env.sql., env.sql.algorithm, env.sql.using = super env.table_name, env.column_names, **env. }.sql.to_h.values end |
#add_reference(table_name, name, **options) ⇒ Object
21 22 23 24 25 |
# File 'lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb', line 21 def add_reference(table_name, name, **) SchemaMonkey::Middleware::Migration::Column.start(caller: self, operation: :add, table_name: table_name, column_name: "#{name}_id", type: :reference, options: .deep_dup) do |env| super env.table_name, env.column_name.sub(/_id$/, ''), **env..merge(_implements_reference: true) end end |
#create_table(table_name, **options, &block) ⇒ Object
27 28 29 30 31 |
# File 'lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb', line 27 def create_table(table_name, **, &block) SchemaMonkey::Middleware::Migration::CreateTable.start(connection: self, table_name: table_name, options: .deep_dup, block: block) do |env| super env.table_name, **env., &env.block end end |
#drop_table(table_name, **options) ⇒ Object
33 34 35 36 37 |
# File 'lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb', line 33 def drop_table(table_name, **) SchemaMonkey::Middleware::Migration::DropTable.start(connection: self, table_name: table_name, options: .dup) do |env| super env.table_name, **env. end end |
#quoted_columns_for_index(column_names, options) ⇒ Object
replaced version to handle array of columns with expressions
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/schema_plus/core/active_record/connection_adapters/abstract_adapter.rb', line 45 def quoted_columns_for_index(column_names, **) output_columns = [] column_names.each do |column| if column.is_a?(String) && column.include?('(') output_columns << column else quoted = {column.to_sym => quote_column_name(column).dup} output_columns.concat (quoted, **).values end end output_columns end |