From 3fe8bcb9979f36a1a29a1539cb20b8a741a9245d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reynir=20Bj=C3=B6rnsson?= Date: Mon, 11 Sep 2023 12:31:11 +0200 Subject: [PATCH] Add migration for modified index --- bin/migrations/builder_migrations.ml | 1 + bin/migrations/m20230911.ml | 26 ++++++++++++++++++++++++++ db/builder_db.ml | 2 +- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 bin/migrations/m20230911.ml diff --git a/bin/migrations/builder_migrations.ml b/bin/migrations/builder_migrations.ml index edcb8bf..862ffd3 100644 --- a/bin/migrations/builder_migrations.ml +++ b/bin/migrations/builder_migrations.ml @@ -179,6 +179,7 @@ let () = [ f20210910 ]; actions (module M20211105); actions (module M20220509); + actions (module M20230911); ]) |> Cmd.eval |> exit diff --git a/bin/migrations/m20230911.ml b/bin/migrations/m20230911.ml new file mode 100644 index 0000000..ec36977 --- /dev/null +++ b/bin/migrations/m20230911.ml @@ -0,0 +1,26 @@ +let new_version = 17L and old_version = 16L +and identifier = "2023-09-11" +and migrate_doc = "index failed builds on main binary is null" +and rollback_doc = "index failed builds on exit code" + +open Grej.Syntax + +let migrate _datadir (module Db : Caqti_blocking.CONNECTION) = + let* () = Grej.check_version ~user_version:old_version (module Db) in + let* () = + Db.exec (Caqti_type.unit ->. Caqti_type.unit @@ + "CREATE INDEX idx_build_failed ON build(job, start_d DESC, start_ps DESC) \ + WHERE main_binary IS NULL") + () + in + Db.exec (Grej.set_version new_version) () + +let rollback _datadir (module Db : Caqti_blocking.CONNECTION) = + let* () = Grej.check_version ~user_version:new_version (module Db) in + let* () = + Db.exec (Caqti_type.unit ->. Caqti_type.unit @@ + "CREATE INDEX idx_build_failed ON build(job, start_d DESC, start_ps DESC) \ + WHERE result_code <> 0") + () + in + Db.exec (Grej.set_version old_version) () diff --git a/db/builder_db.ml b/db/builder_db.ml index d07f947..6ea1ba8 100644 --- a/db/builder_db.ml +++ b/db/builder_db.ml @@ -5,7 +5,7 @@ open Caqti_request.Infix let application_id = 1234839235l (* Please update this when making changes! *) -let current_version = 16L +let current_version = 17L type 'a id = 'a Rep.id