From a1354e799643958e377892b81c6d27ee7a563a6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Vantomme?= Date: Fri, 11 Mar 2022 16:44:10 +0100 Subject: [PATCH] fix(after_party): rescue from ActiveRecord::ConfigurationError ActiveRecord::ConfigurationError: Can't join 'TypeDeChamp' to association named 'drop_down_list'; perhaps you misspelled it? refs: #7030 --- ...121241_drop_down_list_options_to_json.rake | 44 ++++++++++++------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/lib/tasks/deployment/20200618121241_drop_down_list_options_to_json.rake b/lib/tasks/deployment/20200618121241_drop_down_list_options_to_json.rake index a96758e98..82f634f72 100644 --- a/lib/tasks/deployment/20200618121241_drop_down_list_options_to_json.rake +++ b/lib/tasks/deployment/20200618121241_drop_down_list_options_to_json.rake @@ -3,23 +3,33 @@ namespace :after_party do task drop_down_list_options_to_json: :environment do puts "Running deploy task 'drop_down_list_options_to_json'" - types_de_champ = TypeDeChamp.joins(:drop_down_list).where(type_champ: [ - TypeDeChamp.type_champs.fetch(:drop_down_list), - TypeDeChamp.type_champs.fetch(:multiple_drop_down_list), - TypeDeChamp.type_champs.fetch(:linked_drop_down_list) - ]) - progress = ProgressReport.new(types_de_champ.count) - types_de_champ.find_each do |type_de_champ| - type_de_champ.drop_down_list_value = type_de_champ.drop_down_list_value - if type_de_champ.save - type_de_champ.drop_down_list.destroy - end - progress.inc - end - progress.finish + begin + types_de_champ = TypeDeChamp.joins(:drop_down_list).where(type_champ: [ + TypeDeChamp.type_champs.fetch(:drop_down_list), + TypeDeChamp.type_champs.fetch(:multiple_drop_down_list), + TypeDeChamp.type_champs.fetch(:linked_drop_down_list) + ]) - # Update task as completed. If you remove the line below, the task will - # run with every deploy (or every time you call after_party:run). - AfterParty::TaskRecord.create version: '20200618121241' + progress = ProgressReport.new(types_de_champ.count) + + types_de_champ.find_each do |type_de_champ| + type_de_champ.drop_down_list_value = type_de_champ.drop_down_list_value + + if type_de_champ.save + type_de_champ.drop_down_list.destroy + end + + progress.inc + end + + progress.finish + rescue ActiveRecord::ConfigurationError => e + warn e.message + puts "Skip deploy task." + ensure + # Update task as completed. If you remove the line below, the task will + # run with every deploy (or every time you call after_party:run). + AfterParty::TaskRecord.create version: '20200618121241' + end end end