Fix up mix up
When builds were uploaded the script and console was mixed up. This commit fixes that and includes a fixup migration script.
This commit is contained in:
parent
f24a9297d0
commit
71a016fdae
3 changed files with 25 additions and 1 deletions
|
@ -115,6 +115,11 @@ let f20210712b =
|
||||||
Cmdliner.Term.(const do_database_action $ const M20210712b.fixup $ setup_log $ datadir),
|
Cmdliner.Term.(const do_database_action $ const M20210712b.fixup $ setup_log $ datadir),
|
||||||
Cmdliner.Term.info ~doc "fixup-2021-07-12b"
|
Cmdliner.Term.info ~doc "fixup-2021-07-12b"
|
||||||
|
|
||||||
|
let f20210910 =
|
||||||
|
let doc = "Undo builds with script and console mixed up." in
|
||||||
|
Cmdliner.Term.(const do_database_action $ const M20210910.fixup $ setup_log $ datadir),
|
||||||
|
Cmdliner.Term.info ~doc "fixup-2021-09-10"
|
||||||
|
|
||||||
let help_cmd =
|
let help_cmd =
|
||||||
let topic =
|
let topic =
|
||||||
let doc = "Migration to get help on" in
|
let doc = "Migration to get help on" in
|
||||||
|
@ -156,5 +161,6 @@ let () =
|
||||||
actions (module M20210712a);
|
actions (module M20210712a);
|
||||||
[ f20210712b ];
|
[ f20210712b ];
|
||||||
actions (module M20210712c);
|
actions (module M20210712c);
|
||||||
|
[ f20210910 ];
|
||||||
])
|
])
|
||||||
|> Cmdliner.Term.exit
|
|> Cmdliner.Term.exit
|
||||||
|
|
18
bin/migrations/m20210910.ml
Normal file
18
bin/migrations/m20210910.ml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
let mixups =
|
||||||
|
Caqti_request.collect ~oneshot:true
|
||||||
|
Caqti_type.unit
|
||||||
|
(Caqti_type.tup3 (Builder_db.Rep.id (`build : [`build])) Builder_db.Rep.fpath Builder_db.Rep.fpath)
|
||||||
|
"SELECT id, console, script FROM build WHERE console LIKE '%/script.txt' AND script LIKE '%/console.txt'"
|
||||||
|
|
||||||
|
let fixup =
|
||||||
|
Caqti_request.exec ~oneshot:true
|
||||||
|
(Caqti_type.tup3 (Builder_db.Rep.id (`build : [`build])) Builder_db.Rep.fpath Builder_db.Rep.fpath)
|
||||||
|
"UPDATE build SET console = ?2, script = ?3 WHERE id = ?1"
|
||||||
|
|
||||||
|
let fixup _datadir (module Db : Caqti_blocking.CONNECTION) =
|
||||||
|
let open Rresult.R.Infix in
|
||||||
|
Grej.check_version ~user_version:14L (module Db) >>= fun () ->
|
||||||
|
Db.collect_list mixups () >>= fun mixups ->
|
||||||
|
Grej.list_iter_result (fun (id, console, script) ->
|
||||||
|
Db.exec fixup (id, script, console))
|
||||||
|
mixups
|
|
@ -296,7 +296,7 @@ let save_console_and_script staging_dir job_name uuid console script =
|
||||||
in
|
in
|
||||||
save (out_staging "script") script >>= fun () ->
|
save (out_staging "script") script >>= fun () ->
|
||||||
save (out_staging "console") (console_to_string console) >|= fun () ->
|
save (out_staging "console") (console_to_string console) >|= fun () ->
|
||||||
(out "script", out "console")
|
(out "console", out "script")
|
||||||
|
|
||||||
let prepare_staging staging_dir =
|
let prepare_staging staging_dir =
|
||||||
Lwt.return (Bos.OS.Dir.create staging_dir) >>= fun created ->
|
Lwt.return (Bos.OS.Dir.create staging_dir) >>= fun created ->
|
||||||
|
|
Loading…
Reference in a new issue