DB::Database
Inherits DB::ConnectionContext / DB::SessionMethods / DB::QueryMethods / Reference / Object
Acts as an entry point for database access.
Connections are managed by a pool.
Use DB#open to create a Database instance.
Refer to QueryMethods and SessionMethods for documentation about querying the database.
Database URI
Connection parameters are usually in a URI. The format is specified by the individual database drivers, yet there are some common properties names usually shared. See the reference book for examples.
The connection pool can be configured from URI parameters:
initial_pool_size(default 1)max_pool_size(default 0 = unlimited)max_idle_pool_size(default 1)checkout_timeout(default 5.0)retry_attempts(default 1)retry_delay(in seconds, default 1.0)
When querying a database, prepared statements are used by default.
This can be changed from the prepared_statements URI parameter:
prepared_statements(true, or false, default true)
Constructors
Initialize a database with the specified options and connection factory. This covers more advanced use cases that might not be supported by an URI connection string such as tunneling connection.
Instance methods
returns a connection from the pool
the returned connection must be returned
to the pool by explictly calling Connection#release
Run the specified block every time a new connection is established, yielding the new connection to the block.
db = DB.open(DB_URL)
db.setup_connection do |connection|
connection.exec "SET TIME ZONE 'America/New_York'"
end
yields a Transaction from a connection of the pool
Refer to BeginTransaction#transaction for documentation.
yields a connection from the pool the connection is returned to the pool when the block ends