From 95de375d80382a388b69a4fdda99bc0e3c1254bb Mon Sep 17 00:00:00 2001 From: bomzheg Date: Sun, 1 Dec 2024 22:06:12 +0300 Subject: [PATCH] fixed upgrade - don't create bonus key object if there is no bonus keys --- ...1-144338_74618499d318_updated_scenarios.py | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/shvatka/infrastructure/db/migrations/versions/20241201-144338_74618499d318_updated_scenarios.py b/shvatka/infrastructure/db/migrations/versions/20241201-144338_74618499d318_updated_scenarios.py index 89a43736..e324ff77 100644 --- a/shvatka/infrastructure/db/migrations/versions/20241201-144338_74618499d318_updated_scenarios.py +++ b/shvatka/infrastructure/db/migrations/versions/20241201-144338_74618499d318_updated_scenarios.py @@ -26,20 +26,23 @@ def upgrade(): op.execute(""" WITH scn AS ( SELECT jsonb_insert( - l.scenario::JSONB, - '{conditions}', - jsonb_build_array( - jsonb_build_object( - 'type', 'WIN_KEY', - 'keys', l.scenario::JSONB->'keys' - ), - jsonb_build_object( - 'type', 'BONUS_KEY', - 'keys', jsonb_extract_path(l.scenario::JSONB, 'bonus_keys') - ) - ) - ) - 'keys' - 'bonus_keys' AS scenario, - l.id + l.scenario::JSONB, + '{conditions}', + jsonb_path_query_array( + jsonb_build_array( + jsonb_build_object( + 'type', 'WIN_KEY', + 'keys', l.scenario::JSONB->'keys' + ), + jsonb_build_object( + 'type', 'BONUS_KEY', + 'keys', jsonb_extract_path(l.scenario::JSONB, 'bonus_keys') + ) + ), + '$[*] ? (@.keys != null && @.keys.size() > 0)' + ) + ) - 'keys' - 'bonus_keys' AS scenario, + l.id FROM levels AS l ) UPDATE levels lvl