diff --git a/api/libretime_api/legacy/migrations/0035_3_0_0_alpha_13_9.py b/api/libretime_api/legacy/migrations/0035_3_0_0_alpha_13_9.py index 5a5178294..c9c940ddf 100644 --- a/api/libretime_api/legacy/migrations/0035_3_0_0_alpha_13_9.py +++ b/api/libretime_api/legacy/migrations/0035_3_0_0_alpha_13_9.py @@ -19,6 +19,13 @@ UPDATE "cc_files" file SET "track_type_id" = ( ) WHERE "track_type" IS NOT NULL; +UPDATE "cc_blockcriteria" criteria +SET "criteria" = 'track_type_id', "value" = ( + SELECT "id" FROM "cc_track_types" + WHERE "code" = criteria."value" +) +WHERE "criteria" = 'track_type'; + UPDATE "cc_pref" file SET "valstr" = ( SELECT "id" FROM "cc_track_types" WHERE "code" = file."valstr" @@ -38,6 +45,13 @@ UPDATE "cc_files" file SET "track_type" = ( ) WHERE "track_type_id" IS NOT NULL; +UPDATE "cc_blockcriteria" criteria +SET "criteria" = 'track_type', "value" = ( + SELECT "code" FROM "cc_track_types" + WHERE "id" = criteria."value"::int +) +WHERE "criteria" = 'track_type_id'; + UPDATE "cc_pref" pref SET "valstr" = ( SELECT "code" FROM "cc_track_types" WHERE "id" = pref."valstr"::int diff --git a/docs/releases/unreleased.md b/docs/releases/unreleased.md index bc203db11..18d88b0dc 100644 --- a/docs/releases/unreleased.md +++ b/docs/releases/unreleased.md @@ -52,6 +52,28 @@ If the above command outputs the following, no file needs fixing. (0 rows) ``` +In addition, the database smart block criteria value was previously referencing track types using codes, and should now reference track types using ids. You need to check whether some smart block have broken track type references and fix them accordingly. To list broken track type references, you can run the following command: + +```bash +sudo -u libretime libretime-api dbshell --command=" + SELECT b.name, c.criteria, c.modifier, c.value + FROM cc_blockcriteria c, cc_block b + WHERE c.block_id = b.id + AND NOT EXISTS ( + SELECT FROM cc_track_types tt + WHERE tt.code = c.value + ) + AND criteria = 'track_type';" +``` + +If the above command outputs the following, no smart block needs fixing. + +``` + name | criteria | modifier | value +------+----------+----------+------- +(0 rows) +``` + ### New configuration file :::caution