module Marten::DB::Connection

Defined in:

marten/db/connection.cr
marten/db/connection/base.cr
marten/db/connection/mysql.cr
marten/db/connection/postgresql.cr
marten/db/connection/sqlite.cr

Constant Summary

DEFAULT_CONNECTION_NAME = "default"
IMPLEMENTATIONS = {MYSQL_ID => MySQL, POSTGRESQL_ID => PostgreSQL, SQLITE_ID => SQLite}
MYSQL_ID = "mysql"
POSTGRESQL_ID = "postgresql"
SQLITE_ID = "sqlite"

Class Method Summary

Class Method Detail

def self.default #

Returns the default database connection.


[View source]
def self.for(model : Model.class, *, write : Bool = false, instance : Model | Nil = nil) #

Returns the connection to use for the passed model.

Configured database routers are consulted in order to determine which database alias should be used. The write argument indicates whether the connection is intended for a write operation (true) or a read operation (false). An optional model instance can be provided so that routers can take instance-level hints into account (such as a sticky database alias).

If no router provides an opinion, the default database connection is returned.


[View source]
def self.get(db_alias : String | Symbol) #

Returns the database connection configured for a given db_alias.

If no database connection can be found, a Marten::DB::Errors::UnknownConnection exception is raised.


[View source]
def self.register(db_config : Conf::GlobalSettings::Database) #

[View source]
def self.registry #

[View source]