summaryrefslogtreecommitdiff
path: root/app/models/concerns/ci/partitionable.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/concerns/ci/partitionable.rb')
-rw-r--r--app/models/concerns/ci/partitionable.rb14
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