2023-09-11 10:31:11 +00:00
|
|
|
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
|
|
|
|
|
2023-09-18 12:09:54 +00:00
|
|
|
let drop_idx_build_failed =
|
|
|
|
Caqti_type.(unit ->. unit) @@
|
|
|
|
"DROP INDEX idx_build_failed"
|
|
|
|
|
2023-09-11 10:31:11 +00:00
|
|
|
let migrate _datadir (module Db : Caqti_blocking.CONNECTION) =
|
|
|
|
let* () = Grej.check_version ~user_version:old_version (module Db) in
|
2023-09-18 12:09:54 +00:00
|
|
|
let* () = Db.exec drop_idx_build_failed () in
|
2023-09-11 10:31:11 +00:00
|
|
|
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
|
2023-09-18 12:09:54 +00:00
|
|
|
let* () = Db.exec drop_idx_build_failed () in
|
2023-09-11 10:31:11 +00:00
|
|
|
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) ()
|