Class: Code0::ZeroTrack::Database::Partitioning::Strategy::Daily

Inherits:
Time
  • Object
show all
Defined in:
lib/code0/zero_track/database/partitioning/strategy/daily.rb

Constant Summary collapse

PARTITION_SUFFIX =
'Y%YM%mD%d'

Instance Attribute Summary

Attributes inherited from Base

#headroom, #model, #partitioning_column, #retain_detached_for, #retain_for

Instance Method Summary collapse

Methods inherited from Time

#current_partitions, #desired_partitions, #desired_range, #oldest_active_date

Methods included from Loggable

#logger

Methods inherited from Base

#current_partitions, #desired_partitions, #initialize, #oldest_active_date, #partitions_to_create, #partitions_to_detach, #partitions_to_drop, #retention_enabled?

Constructor Details

This class inherits a constructor from Code0::ZeroTrack::Database::Partitioning::Strategy::Base

Instance Method Details

#advance_date(date) ⇒ Object



11
12
13
# File 'lib/code0/zero_track/database/partitioning/strategy/daily.rb', line 11

def advance_date(date)
  date + 1.day
end

#default_headroomObject



25
26
27
# File 'lib/code0/zero_track/database/partitioning/strategy/daily.rb', line 25

def default_headroom
  30.days
end

#normalize_date(date) ⇒ Object



15
16
17
# File 'lib/code0/zero_track/database/partitioning/strategy/daily.rb', line 15

def normalize_date(date)
  date.beginning_of_day.to_date
end

#partition_name(lower_bound) ⇒ Object



19
20
21
22
23
# File 'lib/code0/zero_track/database/partitioning/strategy/daily.rb', line 19

def partition_name(lower_bound)
  suffix = lower_bound&.strftime(PARTITION_SUFFIX) || 'Y0000M00D00'

  "#{model.table_name}_#{suffix}"
end