diff options
Diffstat (limited to 'app/models/ci/pipeline_schedule.rb')
-rw-r--r-- | app/models/ci/pipeline_schedule.rb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/app/models/ci/pipeline_schedule.rb b/app/models/ci/pipeline_schedule.rb index 20ff07e88ba..83e6fa2f862 100644 --- a/app/models/ci/pipeline_schedule.rb +++ b/app/models/ci/pipeline_schedule.rb @@ -8,14 +8,15 @@ module Ci include CronSchedulable include Limitable include EachBatch + include BatchNullifyDependentAssociations self.limit_name = 'ci_pipeline_schedules' self.limit_scope = :project belongs_to :project belongs_to :owner, class_name: 'User' - has_one :last_pipeline, -> { order(id: :desc) }, class_name: 'Ci::Pipeline' - has_many :pipelines + has_one :last_pipeline, -> { order(id: :desc) }, class_name: 'Ci::Pipeline', inverse_of: :pipeline_schedule + has_many :pipelines, dependent: :nullify # rubocop:disable Cop/ActiveRecordDependent has_many :variables, class_name: 'Ci::PipelineScheduleVariable' validates :cron, unless: :importing?, cron: true, presence: { unless: :importing? } @@ -81,6 +82,12 @@ module Ci def worker_cron_expression Settings.cron_jobs['pipeline_schedule_worker']['cron'] end + + def destroy + nullify_dependent_associations_in_batches + + super + end end end |