summaryrefslogtreecommitdiff
path: root/app/models/ci/build_metadata.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/ci/build_metadata.rb')
-rw-r--r--app/models/ci/build_metadata.rb16
1 files changed, 11 insertions, 5 deletions
diff --git a/app/models/ci/build_metadata.rb b/app/models/ci/build_metadata.rb
index 33092e881f0..2f28509f812 100644
--- a/app/models/ci/build_metadata.rb
+++ b/app/models/ci/build_metadata.rb
@@ -5,6 +5,7 @@ module Ci
# Data that should be persisted forever, should be stored with Ci::Build model.
class BuildMetadata < Ci::ApplicationRecord
BuildTimeout = Struct.new(:value, :source)
+ ROUTING_FEATURE_FLAG = :ci_partitioning_use_ci_builds_metadata_routing_table
include Ci::Partitionable
include Presentable
@@ -13,7 +14,12 @@ module Ci
self.table_name = 'ci_builds_metadata'
self.primary_key = 'id'
- partitionable scope: :build
+ self.sequence_name = 'ci_builds_metadata_id_seq'
+
+ partitionable scope: :build, through: {
+ table: :p_ci_builds_metadata,
+ flag: ROUTING_FEATURE_FLAG
+ }
belongs_to :build, class_name: 'CommitStatus'
belongs_to :project
@@ -24,9 +30,9 @@ module Ci
validates :id_tokens, json_schema: { filename: 'build_metadata_id_tokens' }
validates :secrets, json_schema: { filename: 'build_metadata_secrets' }
- serialize :config_options, Serializers::SymbolizedJson # rubocop:disable Cop/ActiveRecordSerialize
- serialize :config_variables, Serializers::SymbolizedJson # rubocop:disable Cop/ActiveRecordSerialize
- serialize :runtime_runner_features, Serializers::SymbolizedJson # rubocop:disable Cop/ActiveRecordSerialize
+ attribute :config_options, :sym_jsonb
+ attribute :config_variables, :sym_jsonb
+ attribute :runtime_runner_features, :sym_jsonb
chronic_duration_attr_reader :timeout_human_readable, :timeout
@@ -50,7 +56,7 @@ module Ci
end
def set_cancel_gracefully
- runtime_runner_features.merge!( { cancel_gracefully: true } )
+ runtime_runner_features.merge!({ cancel_gracefully: true })
end
def cancel_gracefully?