Module: Ridgepole::MySQL::Partition::DSLExtension

Defined in:
lib/ridgepole/mysql/partition/dsl_extension.rb

Instance Method Summary collapse

Instance Method Details

#range_partition(table_name, columns:, between:, interval:) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/ridgepole/mysql/partition/dsl_extension.rb', line 5

def range_partition(table_name, columns:, between:, interval:)
  range_parser = RangeParser.new(between: between, interval: interval)
  range_partition_checker = RangePartitionChecker.new(table_name, range_parser)
  sql_builder = SQLBuilder.new(table_name, columns, range_parser)

  execute(sql_builder.to_sql) do |c|
    # execute only if you need to update partition
    range_partition_checker.can_apply?(c)
  end
end