Module: Async::Matrix::Bridge::Discord::DB::Connection
- Defined in:
- lib/async/matrix/bridge/discord/db/connection.rb
Overview
Establishes a Sequel database connection from the bridge config’s database section.
Supports both SQLite (with foreign keys and WAL mode) and PostgreSQL, matching the mautrix bridgev2 database config schema.
db = Connection.establish(config.database)
db[:users].all # => [...]
Constant Summary collapse
- SQLITE_TYPE =
"sqlite3-fk-wal"- POSTGRES_TYPE =
"postgres"
Class Method Summary collapse
-
.establish(database_config) ⇒ Sequel::Database
Establish a database connection from a config.database section.
Class Method Details
.establish(database_config) ⇒ Sequel::Database
Establish a database connection from a config.database section.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/async/matrix/bridge/discord/db/connection.rb', line 31 def self.establish(database_config) type = database_config.type || SQLITE_TYPE uri = database_config.uri || "sqlite://bridge.db" db = case type when SQLITE_TYPE connect_sqlite(uri, database_config) when POSTGRES_TYPE connect_postgres(uri, database_config) else raise ArgumentError, "Unknown database type: #{type.inspect}. Expected #{SQLITE_TYPE.inspect} or #{POSTGRES_TYPE.inspect}." end db end |