diff options
Diffstat (limited to 'app/models/concerns/ci/partitionable.rb')
-rw-r--r-- | app/models/concerns/ci/partitionable.rb | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/app/models/concerns/ci/partitionable.rb b/app/models/concerns/ci/partitionable.rb index fa0c2221968..28cc17432bc 100644 --- a/app/models/concerns/ci/partitionable.rb +++ b/app/models/concerns/ci/partitionable.rb @@ -69,9 +69,10 @@ module Ci end class_methods do - def partitionable(scope:, through: nil) + def partitionable(scope:, through: nil, partitioned: false) handle_partitionable_through(through) handle_partitionable_scope(scope) + handle_partitionable_ddl(partitioned) end private @@ -95,6 +96,17 @@ module Ci end end end + + def handle_partitionable_ddl(partitioned) + return unless partitioned + + include ::PartitionedTable + + partitioned_by :partition_id, + strategy: :ci_sliding_list, + next_partition_if: proc { false }, + detach_partition_if: proc { false } + end end end end |