The previous implementation expected to work with a context object that contained a field `conn` that represented a valid database connection. However, this required the caller to manage the connection's lifecycle (close, renew, etc.). Now we expect to receive a context object that provides a `withConn` procedure or template that accepts a statement block and provides a `conn` variable to that code block. For example: createRecord(db: DbContext): Record = # withConn must be defined for DbContext db.withConn: # conn must be injected into the statement block context conn.exec(sql("INSERT INTO...")) In addition, this change provides a connection pooling mechanism (`DbConnPool`) as a default implementation for this hypothetical DbContext. There is also a new function `initPool` that will create an DbConnPool instance. Callers of this library can modify their DbContext objects to extend DbConnPool or simply be a type alias of DbConnPool.
15 lines
284 B
Nim
15 lines
284 B
Nim
# Package
|
|
|
|
version = "1.0.0"
|
|
author = "Jonathan Bernard"
|
|
description = "Lightweight Postgres ORM for Nim."
|
|
license = "GPL-3.0"
|
|
srcDir = "src"
|
|
|
|
|
|
|
|
# Dependencies
|
|
|
|
requires "nim >= 1.4.0"
|
|
requires "https://git.jdb-software.com/jdb/nim-namespaced-logging.git"
|