Module Sihl_database.ServiceSource

include Sihl_core.Container.Service.Sig
Sourceval raise_error : ('a, Caqti_error.t) Result.t -> 'a

raise_error err raises a printable caqti error err .

Sourceval fetch_pool : unit -> (Caqti_lwt.connection, Caqti_error.t) Caqti_lwt.Pool.t

fetch_pool () returns the connection pool.

Sourceval query : (Caqti_lwt.connection -> 'a Lwt.t) -> 'a Lwt.t

query ctx f runs the query f on the connection pool and returns the result. If the query fails the Lwt.t fails as well.

Sourceval transaction : (Caqti_lwt.connection -> 'a Lwt.t) -> 'a Lwt.t

transaction ctx f runs the query f on the connection pool in a transaction and returns the result. If the query fails the Lwt.t fails as well and the transaction gets rolled back. If the database driver doesn't support transactions, transaction gracefully becomes query.