Module Sihl__.Database

include Sihl__.Contract_database
type database =
| MariaDb
| PostgreSql
val name : string
exception Exception of string
module type Sig = sig ... end
val log_src : Logs.src
module Logs : Logs.LOG
val main_pool_ref : (Caqti_lwt.connection, Caqti_error.t) Caqti_lwt.Pool.t option Stdlib.ref
val pools : (string, (Caqti_lwt.connection, Caqti_error.t) Caqti_lwt.Pool.t) Stdlib.Hashtbl.t
type 'a prepared_search_request = {
asc_request : (int * int, int * 'a[ `Many | `One | `Zero ]) Caqti_request.t;
desc_request : (int * int, int * 'a[ `Many | `One | `Zero ]) Caqti_request.t;
filter_asc_request : (string * int * int, int * 'a[ `Many | `One | `Zero ]) Caqti_request.t;
filter_desc_request : (string * int * int, int * 'a[ `Many | `One | `Zero ]) Caqti_request.t;
format_filter : string -> string;
}
val prepare_requests : 'a -> 'b -> 'c -> 'd
val default_format_filter : string -> string
val prepare_search_request : search_query:string -> filter_fragment:string -> ?⁠sort_by_field:string -> ?⁠format_filter:(string -> string) -> 'a Caqti_type.t -> 'a prepared_search_request
val run_request : 'a -> 'b -> 'c -> 'd -> 'e -> 'f
type config = {
url : string;
pool_size : int option;
skip_default_pool_creation : bool option;
choose_pool : string option;
}
val config : string -> int option -> bool option -> string option -> config
val schema : (string, string -> int option -> bool option -> string option -> configconfig) Conformist.t
val print_pool_usage : ('a'b) Caqti_lwt.Pool.t -> unit
val fetch_pool : ?⁠ctx:(Stdlib.String.t * string) CCList.t -> unit -> (Caqti_lwt.connection, Caqti_error.t) Caqti_lwt.Pool.t
val add_pool : ?⁠pool_size:int -> string -> string -> unit
val raise_error : ('a[< Caqti_error.t ]) Stdlib.result -> 'a
val transaction : ?⁠ctx:(Stdlib.String.t * string) CCList.t -> (Caqti_lwt.connection -> 'a Lwt.t) -> 'a Lwt.t
val transaction' : ?⁠ctx:(Stdlib.String.t * string) CCList.t -> (Caqti_lwt.connection -> ('a[< Caqti_error.t ]) Stdlib.result Lwt.t) -> 'a Lwt.t
val run_search_request : ?⁠ctx:(Stdlib.String.t * string) CCList.t -> 'a prepared_search_request -> [ `Asc | `Desc ] -> string option -> limit:int -> offset:int -> ('a list * int) Lwt.t
val query : ?⁠ctx:(Stdlib.String.t * string) CCList.t -> (Caqti_lwt.connection -> 'a Lwt.t) -> 'a Lwt.t
val query' : ?⁠ctx:(Stdlib.String.t * string) CCList.t -> (Caqti_lwt.connection -> ('a[< Caqti_error.t ]) Stdlib.result Lwt.t) -> 'a Lwt.t
val find_opt : ?⁠ctx:(Stdlib.String.t * string) CCList.t -> ('a'b[< `One | `Zero ]) Caqti_request.t -> 'a -> 'b option Lwt.t
val find : ?⁠ctx:(Stdlib.String.t * string) CCList.t -> ('a'b[< `One ]) Caqti_request.t -> 'a -> 'b Lwt.t
val collect : ?⁠ctx:(Stdlib.String.t * string) CCList.t -> ('a'b[< `Many | `One | `Zero ]) Caqti_request.t -> 'a -> 'b list Lwt.t
val exec : ?⁠ctx:(Stdlib.String.t * string) CCList.t -> ('a, unit, [< `Zero ]) Caqti_request.t -> 'a -> unit Lwt.t
val used_database : unit -> Sihl__.Contract_database.database option
val start : unit -> unit Lwt.t
val stop : unit -> unit Lwt.t
val lifecycle : Sihl__.Core_container.lifecycle
val register : unit -> Sihl__.Core_container.Service.t